<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Удобный метод сохранения\загрузки настроек в реестре]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=10783&amp;type=atom" />
	<updated>2015-07-13T16:12:20Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=10783</id>
		<entry>
			<title type="html"><![CDATA[AHK: Удобный метод сохранения\загрузки настроек в реестре]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=95388#p95388" />
			<content type="html"><![CDATA[<p>Все что нужно - это указать путь сохранения в реестре и перечислить переменные которые нужно сохранить с указанием значения по умолчанию.</p><p>Затем, там где нужно сохранить\загрузить настройки - вызвать нужную метку &quot;SaveSettings\LoadSettings&quot;.<br /></p><div class="codebox"><pre><code>Settingspath=SOFTWARE\Unknown_AHK_Script
; full path = HKCU\SOFTWARE\Unknown_AHK_Script

SettingsDefault=
(
a=1
exemple=564 ; Defaut value for save &amp; load
setting2=%a_screenwidth% ; `% = can take variables, not expression
etc=Arrays are not supported
)



; your code
gosub,LoadSettings
msgbox,% &quot;a = &quot; a &quot;`nexemple = &quot; exemple &quot;`nsetting2 = &quot; setting2 &quot;`netc = &quot; 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.=&quot;=&quot; a_loopfield
  }
  RegRead,%Setting%,HKCU,%Settingspath%,%Setting%
  if errorlevel
  {
    RegWrite,REG_SZ,HKCU,%Settingspath%,%Setting%,%Default%
    RegRead,%Setting%,HKCU,%Settingspath%,%Setting%
  }
}
Return

</code></pre></div><p>Решил что кому-нибудь пригодится, а то сам пользуюсь и другие не знают.</p>]]></content>
			<author>
				<name><![CDATA[Alectric]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26027</uri>
			</author>
			<updated>2015-07-13T16:12:20Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=95388#p95388</id>
		</entry>
</feed>
