<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Удобный метод сохранения\загрузки настроек в реестре]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=10783</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=10783&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Удобный метод сохранения\загрузки настроек в реестре».]]></description>
		<lastBuildDate>Mon, 13 Jul 2015 16:12:20 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[AHK: Удобный метод сохранения\загрузки настроек в реестре]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=95388#p95388</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (Alectric)]]></author>
			<pubDate>Mon, 13 Jul 2015 16:12:20 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=95388#p95388</guid>
		</item>
	</channel>
</rss>
