2016-07-23 18 views
0

Meine Speicherfunktion, Hinweis Ich möchte nicht wissen, besser Möglichkeiten, um es zu speichern oder Korrekturen an meinem Speichercode, ich brauche nur Hilfe auf der Seite, wo ich es automatisch entfernen zusätzliche nicht benötigt/alte Klammern generiert am sparen: Hier ist die Taste save:AutoHotKey Hilfe, passender Charakter und ersetzen

buttonSave: 
FileAppend, 
(
nprocess,exist, %Input% 
nprocess,priority, %Input%, %PriorInput% 
} 
), C:\Users\%A_UserName%\Desktop\AutoSetup\Settings.ahk 
MsgBox, 0, Saved, %PriorInput% Priority to %Input% has been saved. 

Wie kann ich AutoHotkey } zu finden bekommen, und entfernen Sie die Zeichen } passende und dann ein } ganz am Ende der Datei hinzufügen, und haben diese Schleife?

Ich habe eine Funktion speichern und die Ausgabe ist dies:

loop 
{ 
process,exist, Steam.exe 
process,priority, Steam.exe, 
} 
process,exist, Steam.exe 
process,priority, Steam.exe, 
} 

ich es will } das Ende finden und die mittleren } beide entfernen und dann ein einziges } am Ende hinzufügen. Wenn Sie speichern, wird immer eine Klammer am unteren Rand hinzugefügt.

+0

Zum Beispiel, wenn ich hatte, dass in der Einstellungsdatei, ein neues Programm gespeichert es diese hinzufügen würde: Prozess, exist, something.exe Prozess, Priorität, something.exe } So würde es hinzufügen, dass zu dem aktuellen Code habe ich über – Ethorbit

+0

wie über ein sehr kurzes Beispiel (ein paar Zeilen) der Pre-und Post-verarbeiteten Datei. .. –

+0

Jetzt tun – Ethorbit

Antwort

1
buttonSave: 
FileRead, Contents, C:\Users\%A_UserName%\Desktop\AutoSetup\Settings.ahk 
if not ErrorLevel ; Successfully loaded 
{ 
    StringTrimRight, Contents, Contents, 1 ; remove the end } 
    FileAppend, %Contents%, C:\Users\%A_UserName%\Desktop\AutoSetup\Temp.ahk 
    Contents = ; Free the memory 
} 
FileAppend, 
(
process,exist, %Input% 
process,priority, %Input%, %PriorInput% 
} 
), C:\Users\%A_UserName%\Desktop\AutoSetup\Temp.ahk 
FileMove, C:\Users\%A_UserName%\Desktop\AutoSetup\Temp.ahk, C:\Users\%A_UserName%\Desktop\AutoSetup\Settings.ahk, 1 ; overwrite existing file 
; Run, edit C:\Users\%A_UserName%\Desktop\AutoSetup\Settings.ahk 
MsgBox, 0, Saved, %PriorInput% Priority to %Input% has been saved. 
; reload ; if Settings.ahk is included in this script 
return 
+0

Vielen Dank, habe es noch nicht ausprobiert, aber es sieht perfekt aus. – Ethorbit

+0

Es funktioniert! Nochmals vielen Dank! – Ethorbit

1

würde ich so etwas wie dieses verwenden (Die Schleife verursacht hohe CPU-Auslastung):

#NoEnv 
#SingleInstance Force 
#Persistent 

Menu, Tray, Add 
Menu, Tray, Add, Add Process, Add_Process 
Menu, Tray, Default, Add Process ; doubleclick the tray icon to add a new process 

SetTimer, set_priority, 500 
return 

set_priority: 
Process,exist, Notepad.exe 
Process,priority, Notepad.exe, L 
; Add Process 
return 

Add_Process: 
InputBox, ProcessName, ProcessName, Enter a Process. 
if !ErrorLevel 
InputBox, priority, priority, Enter a priority. 
if !ErrorLevel 
{ 
    text = 
    (  
    Process,exist, %ProcessName%.exe 
    Process,priority, %ProcessName%.exe, %priority% 
    ; Add Process 
    ) 
    FileRead, Contents, %A_ScriptFullPath% 
    if not ErrorLevel ; Successfully loaded 
    { 
     StringReplace, Contents, Contents, `; Add Process, %text% 
     FileAppend, %Contents%, %A_ScriptDir%\Temp.ahk 
     Contents = ; Free the memory 
    } 
    FileMove, %A_ScriptDir%\Temp.ahk, %A_ScriptFullPath%, 1 ; overwrite existing file 
    reload 
} 
return 
+0

Nein, ich habe einen voll funktionsfähigen Weg Um einen Prozess hinzuzufügen, musste ich nur wissen, wie ich die gespeicherte Einstellungsdatei finden und die zusätzlichen Klammern entfernen kann, die beim Speichern automatisch generiert wurden. – Ethorbit

+0

Ich habe meinen Post jetzt bearbeitet, einschließlich, wie mein Speichern funktioniert, ich glaube nicht, dass ich wirklich so weit zurück wie die gesamte GUI-Schnittstelle hinzufügen muss, um Prozesse hinzuzufügen. – Ethorbit