2016-07-23 2 views
0

Моя функция сохранения, примечание Я не хочу знать, как лучше сохранить ее или внести исправления в мой код сохранения, мне просто нужна помощь с той стороны, в которой я нуждаюсь, чтобы автоматически удалить дополнительные необязательные/старые кронштейны, сгенерированные при сохранении: Вот кнопка сохранения:AutoHotKey Help, совпадающий символ и замена

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. 

Как я могу получить AutoHotkey найти } и удалите соответствующий полукокс }, а затем добавьте } в самом конце файла, и иметь это зациклено?

У меня есть возможность сохранить и выход заключается в следующем:

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

Я хочу, чтобы найти конец } и средний } удалить их обоих, а затем добавить один } в самом конце. Если вы сохраните, он всегда добавляет скобу внизу.

+0

Например, если бы я имел, что в файле настроек, сохранили новую программу он хотел бы добавить следующее: процесс, есть, something.exe процесс, приоритет, something.exe } Так что это добавит, что к текущему коду у меня выше – Ethorbit

+0

, как о показе очень короткого примера (несколько строк) файла pre и post обработанного файла. .. –

+0

Выполнение прямо сейчас – Ethorbit

ответ

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

Большое вам спасибо, еще не пробовал, но выглядит отлично. – Ethorbit

+0

Это работает! Еще раз спасибо! – Ethorbit

1

Я хотел бы использовать что-то вроде этого (Петля приводит к высокой загрузке ЦП):

#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

Нет, у меня есть полностью функциональный способ для добавления процесса мне просто нужно было знать, как найти сохраненный файл настроек и удалить дополнительные скобки, которые были автоматически сгенерированы при сохранении. – Ethorbit

+0

Теперь я редактировал свой пост, в том числе о том, как работает мое сохранение. Не думаю, что мне нужно добавить еще весь интерфейс gui для добавления процессов. – Ethorbit