Тема: AHK: Удобный метод сохранения\загрузки настроек в реестре
Все что нужно - это указать путь сохранения в реестре и перечислить переменные которые нужно сохранить с указанием значения по умолчанию.
Затем, там где нужно сохранить\загрузить настройки - вызвать нужную метку "SaveSettings\LoadSettings".
Settingspath=SOFTWARE\Unknown_AHK_Script
; full path = HKCU\SOFTWARE\Unknown_AHK_Script
SettingsDefault=
(
a=1
exemple=564 ; Defaut value for save & load
setting2=%a_screenwidth% ; `% = can take variables, not expression
etc=Arrays are not supported
)
; your code
gosub,LoadSettings
msgbox,% "a = " a "`nexemple = " exemple "`nsetting2 = " setting2 "`netc = " etc
exitapp
SaveSettings:
if Settingspath=
Settingspath=SOFTWARE\Unknown_AHK_Script
if SettingsDefault=
return
loop,parse,SettingsDefault,`n
{
Loop,parse,a_loopfield,=
{
if a_index=1
{
Setting:=a_loopfield
Break
}
}
RegWrite,REG_SZ,HKCU,%Settingspath%,%Setting%,% %Setting%
}
LoadSettings:
if Settingspath=
Settingspath=SOFTWARE\Unknown_AHK_Script
if SettingsDefault=
return
loop,parse,SettingsDefault,`n
{
Loop,parse,a_loopfield,=
{
if a_index=1
Setting:=a_loopfield
else if a_index=2
Default:=a_loopfield
else
Default.="=" a_loopfield
}
RegRead,%Setting%,HKCU,%Settingspath%,%Setting%
if errorlevel
{
RegWrite,REG_SZ,HKCU,%Settingspath%,%Setting%,%Default%
RegRead,%Setting%,HKCU,%Settingspath%,%Setting%
}
}
Return
Решил что кому-нибудь пригодится, а то сам пользуюсь и другие не знают.