Тема: AHK: Загрузка сочетаний из ini файла
Скрипт имеет несколько функций, для каждой можно в настройках задать сочетание клавиш, которое сохраняется в ini-файл по нажатию кнопки "Save_and_Run".
При запуске скрипта из ini-файла загружаются сохраненные сочетания:
IniRead, InfoCheckVar, Refresher.ini, InfoSettings, enable
Gui, Add, CheckBox, vInfoCheck checked%InfoCheckVar% x26 y217 w80 h20 , by button
IniRead, InfoSave, Refresher.ini, InfoSettings, Info , %A_Space%
Gui, Add, Hotkey, vInfo x106 y217 w80 h20 , %InfoSave%
Gui, Add, Button, x326 y247 w90 h20 , Save_and_Run
Gui, Show, x821 y86 h280 w427, AutoTableMove v 1.0
Return
GuiClose:
ExitApp
ButtonSave_and_Run:
GuiControlGet, InfoCheckVar,, InfoCheck
IniWrite, %InfoCheckVar%, Refresher.ini, InfoSettings, enable
GuiControlGet, Info,, Info
Hotkey, %Info%, RefreshInfo, On
IniWrite, %Info%, Refresher.ini, InfoSettings, Info
Return
RefreshInfo:
if (InfoCheckVar=0) {
return
} else{
IfWinNotExist, ahk_class TableFrameClass
return
WinActivate
WinGetPos, , , WidthInfo, HeightInfo, ahk_class TableFrameClass
MouseGetPos, OutputVarX, OutputVarY
SetFormat, float, 0.0
x1 := (WidthInfo * 0.295)
y1 := (HeightInfo * 0.866)
y2 := (HeightInfo * 0.898)
SetDefaultMouseSpeed, 0
SetMouseDelay, -1
SendInput, {Click %x1%, %y1%}
SendInput, {Click %x1%, %y2%}
SendInput, {Click %OutputVarX%, %OutputVarY%, 0}
}return
INI-файл соответственно содержит:
[InfoSettings]
enable=1
Info=L
При дефолтном английском языке системы все работает правильно, но если дефолтный русский, то при запуске скрипта поле, содержащее латинские символы, обращается в ноль и при нажатии "Save_and_Run" сообщает об этом:
Если переключить на английский, снова назначить на латинском клавишу - все работает, до перезапуска скрипта.
Как лучше всего решить эту проблему? На ум приходит только проверка раскладки на момент запуска скрипта и смена ее.
Попутно пара вопросов:
1) Скрипт не работает, пока не нажмешь клавишу "Save_and_Run", как это обойти?
2) Можно ли сделать сохранение настроек без кнопки, т.е. автоматически при изменении параметров?
Замечания по скрипту приветствуются, опыта в программировании нет.