<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://nsis.sourceforge.io/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Useful_InstallOptions_and_MUI_macros</id>
	<title>Useful InstallOptions and MUI macros - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://nsis.sourceforge.io/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Useful_InstallOptions_and_MUI_macros"/>
	<link rel="alternate" type="text/html" href="https://nsis.sourceforge.io/mediawiki/index.php?title=Useful_InstallOptions_and_MUI_macros&amp;action=history"/>
	<updated>2026-06-07T00:14:27Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://nsis.sourceforge.io/mediawiki/index.php?title=Useful_InstallOptions_and_MUI_macros&amp;diff=21961&amp;oldid=prev</id>
		<title>Dsuess: /* sample.ini */ Changed NumFields from 16 to 15. It would not load in HM NIS Edit otherwise</title>
		<link rel="alternate" type="text/html" href="https://nsis.sourceforge.io/mediawiki/index.php?title=Useful_InstallOptions_and_MUI_macros&amp;diff=21961&amp;oldid=prev"/>
		<updated>2012-05-17T18:12:50Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;sample.ini: &lt;/span&gt; Changed NumFields from 16 to 15. It would not load in HM NIS Edit otherwise&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;â† Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:12, 17 May 2012&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l545&quot;&gt;Line 545:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 545:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; Ini file generated by the HM NIS Edit IO designer.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; Ini file generated by the HM NIS Edit IO designer.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[Settings]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[Settings]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;NumFields=&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;16&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;NumFields=&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;15&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[Field 1]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[Field 1]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key n22049_wiki-wiki_:diff::1.12:old-18090:rev-21961 --&gt;
&lt;/table&gt;</summary>
		<author><name>Dsuess</name></author>
	</entry>
	<entry>
		<id>https://nsis.sourceforge.io/mediawiki/index.php?title=Useful_InstallOptions_and_MUI_macros&amp;diff=18090&amp;oldid=prev</id>
		<title>95.35.231.151: /* sample.ini */</title>
		<link rel="alternate" type="text/html" href="https://nsis.sourceforge.io/mediawiki/index.php?title=Useful_InstallOptions_and_MUI_macros&amp;diff=18090&amp;oldid=prev"/>
		<updated>2010-02-07T09:11:16Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;sample.ini&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;â† Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 09:11, 7 February 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l545&quot;&gt;Line 545:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 545:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; Ini file generated by the HM NIS Edit IO designer.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; Ini file generated by the HM NIS Edit IO designer.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[Settings]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[Settings]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;NumFields=&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;15&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;NumFields=&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;16&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[Field 1]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[Field 1]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key n22049_wiki-wiki_:diff::1.12:old-13597:rev-18090 --&gt;
&lt;/table&gt;</summary>
		<author><name>95.35.231.151</name></author>
	</entry>
	<entry>
		<id>https://nsis.sourceforge.io/mediawiki/index.php?title=Useful_InstallOptions_and_MUI_macros&amp;diff=13597&amp;oldid=prev</id>
		<title>207.139.85.61: /* Macro: GROUPCONTROLS */</title>
		<link rel="alternate" type="text/html" href="https://nsis.sourceforge.io/mediawiki/index.php?title=Useful_InstallOptions_and_MUI_macros&amp;diff=13597&amp;oldid=prev"/>
		<updated>2007-10-16T20:45:53Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Macro: GROUPCONTROLS&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;â† Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 20:45, 16 October 2007&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l39&quot;&gt;Line 39:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 39:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; Usage:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; Usage:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; eg. !insertmacro GROUPCONTROLS &amp;quot;${DIALOG1}&amp;quot; &amp;quot;${CHK_PROXYSETTINGS}&amp;quot; &amp;quot;${LBL_IPADDRESS}|${TXT_IPADDRESS}|${LBL_PORT1}|${TXT_PORT1}|${CHK_ENCRYPTION}&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; eg. !insertmacro GROUPCONTROLS &amp;quot;${DIALOG1}&amp;quot; &amp;quot;${CHK_PROXYSETTINGS}&amp;quot;  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;; &lt;/ins&gt;&amp;quot;${LBL_IPADDRESS}|${TXT_IPADDRESS}|${LBL_PORT1}|${TXT_PORT1}|${CHK_ENCRYPTION}&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; FILE:          INI-file in $pluginsdir&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; FILE:          INI-file in $pluginsdir&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; SOURCECONTROL: RadioButton, Checkbox&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; SOURCECONTROL: RadioButton, Checkbox&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key n22049_wiki-wiki_:diff::1.12:old-11593:rev-13597 --&gt;
&lt;/table&gt;</summary>
		<author><name>207.139.85.61</name></author>
	</entry>
	<entry>
		<id>https://nsis.sourceforge.io/mediawiki/index.php?title=Useful_InstallOptions_and_MUI_macros&amp;diff=11593&amp;oldid=prev</id>
		<title>Bholliger: /* Macro: GROUPCONTROLS */</title>
		<link rel="alternate" type="text/html" href="https://nsis.sourceforge.io/mediawiki/index.php?title=Useful_InstallOptions_and_MUI_macros&amp;diff=11593&amp;oldid=prev"/>
		<updated>2006-12-15T00:46:14Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Macro: GROUPCONTROLS&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;â† Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 00:46, 15 December 2006&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l32&quot;&gt;Line 32:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 32:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Macro: GROUPCONTROLS ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Macro: GROUPCONTROLS ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Activate a group of controls according another control like a checkbox.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Activate a group of controls according &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;to &lt;/ins&gt;another control like a checkbox.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;highlight-nsis&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;highlight-nsis&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key n22049_wiki-wiki_:diff::1.12:old-11592:rev-11593 --&gt;
&lt;/table&gt;</summary>
		<author><name>Bholliger</name></author>
	</entry>
	<entry>
		<id>https://nsis.sourceforge.io/mediawiki/index.php?title=Useful_InstallOptions_and_MUI_macros&amp;diff=11592&amp;oldid=prev</id>
		<title>Bholliger: /* General tips and hints for InstallOptions */</title>
		<link rel="alternate" type="text/html" href="https://nsis.sourceforge.io/mediawiki/index.php?title=Useful_InstallOptions_and_MUI_macros&amp;diff=11592&amp;oldid=prev"/>
		<updated>2006-12-15T00:44:42Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;General tips and hints for InstallOptions&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;â† Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 00:44, 15 December 2006&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l5&quot;&gt;Line 5:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 5:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;I created some macros that are useful for some InstallOptions tasks. Feel free to use and/or add your own macros as well. I hope they are useful.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;I created some macros that are useful for some InstallOptions tasks. Feel free to use and/or add your own macros as well. I hope they are useful.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== General tips and hints ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== General tips and hints &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;for InstallOptions &lt;/ins&gt;==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Due to the fact that the field numbers define the tab-order this might change after &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;the addition of &lt;/del&gt;another element &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;in &lt;/del&gt;the dialog. Therefore I recommend using constants that hold the field names in a single location. This improves the general readability of the code as well.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Due to the fact that the field numbers define the tab-order this might change after &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;adding &lt;/ins&gt;another element &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;to &lt;/ins&gt;the dialog. Therefore I recommend using constants that hold the field names in a single location. This improves the general readability of the code as well.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;highlight-nsis&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;highlight-nsis&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key n22049_wiki-wiki_:diff::1.12:old-11591:rev-11592 --&gt;
&lt;/table&gt;</summary>
		<author><name>Bholliger</name></author>
	</entry>
	<entry>
		<id>https://nsis.sourceforge.io/mediawiki/index.php?title=Useful_InstallOptions_and_MUI_macros&amp;diff=11591&amp;oldid=prev</id>
		<title>Bholliger: initial</title>
		<link rel="alternate" type="text/html" href="https://nsis.sourceforge.io/mediawiki/index.php?title=Useful_InstallOptions_and_MUI_macros&amp;diff=11591&amp;oldid=prev"/>
		<updated>2006-12-15T00:42:32Z</updated>

		<summary type="html">&lt;p&gt;initial&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{PageAuthor|bholliger}}&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
I created some macros that are useful for some InstallOptions tasks. Feel free to use and/or add your own macros as well. I hope they are useful.&lt;br /&gt;
&lt;br /&gt;
== General tips and hints ==&lt;br /&gt;
&lt;br /&gt;
Due to the fact that the field numbers define the tab-order this might change after the addition of another element in the dialog. Therefore I recommend using constants that hold the field names in a single location. This improves the general readability of the code as well.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;highlight-nsis&amp;gt;&lt;br /&gt;
;----------------------&lt;br /&gt;
;defines for Dialog 1 - sample.ini&lt;br /&gt;
&lt;br /&gt;
  !define DIALOG1 &amp;quot;sample.ini&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  !define CHK_BLUE &amp;quot;Field 2&amp;quot;&lt;br /&gt;
  !define CHK_RED &amp;quot;Field 3&amp;quot;&lt;br /&gt;
  !define CHK_GREEN &amp;quot;Field 4&amp;quot;&lt;br /&gt;
  !define CHK_BROWN &amp;quot;Field 5&amp;quot;&lt;br /&gt;
  !define CHK_PROXYSETTINGS &amp;quot;Field 6&amp;quot;&lt;br /&gt;
  !define GRP_PROXYOPTIONS &amp;quot;Field 7&amp;quot;&lt;br /&gt;
  !define LBL_IPADDRESS &amp;quot;Field 8&amp;quot;&lt;br /&gt;
  !define TXT_IPADDRESS &amp;quot;Field 9&amp;quot;&lt;br /&gt;
  !define LBL_PORT1 &amp;quot;Field 10&amp;quot;&lt;br /&gt;
  !define TXT_PORT1 &amp;quot;Field 11&amp;quot;&lt;br /&gt;
  !define CHK_ENCRYPTION &amp;quot;Field 12&amp;quot;&lt;br /&gt;
  !define DRQ_NSISPATH &amp;quot;Field 14&amp;quot;&lt;br /&gt;
  !define CMD_AUTODETECTNSISPATH &amp;quot;Field 15&amp;quot;&lt;br /&gt;
&amp;lt;/highlight-nsis&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Macro: GROUPCONTROLS ==&lt;br /&gt;
&lt;br /&gt;
Activate a group of controls according another control like a checkbox.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;highlight-nsis&amp;gt;&lt;br /&gt;
; Activate a group of controls, depending on the state of one control&lt;br /&gt;
; &lt;br /&gt;
; Usage:&lt;br /&gt;
; &lt;br /&gt;
; eg. !insertmacro GROUPCONTROLS &amp;quot;${DIALOG1}&amp;quot; &amp;quot;${CHK_PROXYSETTINGS}&amp;quot; &amp;quot;${LBL_IPADDRESS}|${TXT_IPADDRESS}|${LBL_PORT1}|${TXT_PORT1}|${CHK_ENCRYPTION}&amp;quot;&lt;br /&gt;
; FILE:          INI-file in $pluginsdir&lt;br /&gt;
; SOURCECONTROL: RadioButton, Checkbox&lt;br /&gt;
; CONTROLGROUP:  pipe delimited list of controls; ${BUTTON1}|${CHECKBOX}|${TEXTFIELD}&lt;br /&gt;
;&lt;br /&gt;
; Requires:&lt;br /&gt;
;&lt;br /&gt;
; !include &amp;quot;WordFunc.nsh&amp;quot;&lt;br /&gt;
; !insertmacro WordReplace&lt;br /&gt;
; !insertmacro WordFind&lt;br /&gt;
;&lt;br /&gt;
!macro GROUPCONTROLS FILE SOURCECONTROL CONTROLGROUP&lt;br /&gt;
  Push $R0 ;holds element&lt;br /&gt;
  Push $R1 ;counter&lt;br /&gt;
  Push $R2 ;state of the control&lt;br /&gt;
  Push $R3 ;flags of the control / hwnd of the control&lt;br /&gt;
  &lt;br /&gt;
  !insertmacro MUI_INSTALLOPTIONS_READ $R2 &amp;quot;${FILE}&amp;quot; &amp;quot;${SOURCECONTROL}&amp;quot; &amp;quot;State&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  StrCpy $R1 1&lt;br /&gt;
  ${Do}&lt;br /&gt;
    ClearErrors&lt;br /&gt;
    ${WordFind} &amp;quot;${CONTROLGROUP}&amp;quot; &amp;quot;|&amp;quot; &amp;quot;E+$R1&amp;quot; $R0&lt;br /&gt;
&lt;br /&gt;
    ${If} ${Errors}&lt;br /&gt;
    ${OrIf} $R0 == &amp;quot;&amp;quot;&lt;br /&gt;
      ${ExitDo}&lt;br /&gt;
    ${EndIf}&lt;br /&gt;
&lt;br /&gt;
    ; Put state change in flags of element as well&lt;br /&gt;
    !insertmacro MUI_INSTALLOPTIONS_READ $R3 &amp;quot;${FILE}&amp;quot; &amp;quot;$R0&amp;quot; &amp;quot;Flags&amp;quot;&lt;br /&gt;
    ${If} &amp;quot;$R2&amp;quot; == &amp;quot;1&amp;quot;&lt;br /&gt;
      ${WordReplace} $R3 &amp;quot;DISABLED&amp;quot; &amp;quot;&amp;quot; &amp;quot;+&amp;quot; $R3&lt;br /&gt;
       ${WordReplace} $R3 &amp;quot;||&amp;quot; &amp;quot;|&amp;quot; &amp;quot;+&amp;quot; $R3&lt;br /&gt;
      !insertmacro MUI_INSTALLOPTIONS_WRITE &amp;quot;${FILE}&amp;quot; &amp;quot;$R0&amp;quot; &amp;quot;Flags&amp;quot; $R3&lt;br /&gt;
    ${Else}&lt;br /&gt;
      !insertmacro MUI_INSTALLOPTIONS_WRITE &amp;quot;${FILE}&amp;quot; &amp;quot;$R0&amp;quot; &amp;quot;Flags&amp;quot; &amp;quot;$R3|DISABLED&amp;quot;&lt;br /&gt;
    ${EndIf}&lt;br /&gt;
&lt;br /&gt;
    !insertmacro MUI_INSTALLOPTIONS_READ $R3 &amp;quot;${FILE}&amp;quot; &amp;quot;$R0&amp;quot; &amp;quot;HWND&amp;quot;&lt;br /&gt;
    EnableWindow $R3 $R2&lt;br /&gt;
    &lt;br /&gt;
    IntOp $R1 $R1 + 1&lt;br /&gt;
  ${Loop}&lt;br /&gt;
&lt;br /&gt;
  Pop $R3&lt;br /&gt;
  Pop $R2&lt;br /&gt;
  Pop $R1&lt;br /&gt;
  Pop $R0&lt;br /&gt;
&lt;br /&gt;
!macroend&lt;br /&gt;
&amp;lt;/highlight-nsis&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Macro: CHANGETEXTFIELD ==&lt;br /&gt;
&lt;br /&gt;
Change the content of a textfield and write it to ini file. Ideal for autodetect purposes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;highlight-nsis&amp;gt;&lt;br /&gt;
;change text field and put value in ini file&lt;br /&gt;
; &lt;br /&gt;
; Usage:&lt;br /&gt;
;&lt;br /&gt;
;  !insertmacro CHANGETEXTFIELD &amp;quot;${DIALOG1}&amp;quot; &amp;quot;${DRQ_NSISPATH}&amp;quot; $tmp&lt;br /&gt;
;&lt;br /&gt;
; FILE:    INI-file in $pluginsdir&lt;br /&gt;
; ELEMENT: name of the control&lt;br /&gt;
; VALUE:   value that should appear in control&lt;br /&gt;
;&lt;br /&gt;
!macro CHANGETEXTFIELD FILE ELEMENT VALUE&lt;br /&gt;
  Push $R0 ; holds value&lt;br /&gt;
  !insertmacro MUI_INSTALLOPTIONS_WRITE ${VALUE} &amp;quot;${FILE}&amp;quot; &amp;quot;${ELEMENT}&amp;quot; &amp;quot;State&amp;quot;&lt;br /&gt;
  !insertmacro MUI_INSTALLOPTIONS_READ $R0 &amp;quot;${FILE}&amp;quot; &amp;quot;${ELEMENT}&amp;quot; &amp;quot;HWND&amp;quot;&lt;br /&gt;
  SendMessage $R0 ${WM_SETTEXT} 0 &amp;quot;STR:${VALUE}&amp;quot;&lt;br /&gt;
  Pop $R0&lt;br /&gt;
!macroend&lt;br /&gt;
&amp;lt;/highlight-nsis&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Macro: CHECKBOXCHECKER ==&lt;br /&gt;
&lt;br /&gt;
Counts the number of activated controls and displays an error message if there are not enough controls selected. Select 3 or 4 out of 6.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;highlight-nsis&amp;gt;&lt;br /&gt;
; checks a group of checkboxes and counts how many of them&lt;br /&gt;
; are activated.&lt;br /&gt;
;&lt;br /&gt;
; Usage:&lt;br /&gt;
;&lt;br /&gt;
; Create a langstring containing an error message&lt;br /&gt;
; eg. LangString TEXT_LIMITATIONSEXEEDED ${LANG_ENGLISH} &amp;quot;Choose either two or three colours!&amp;quot;&lt;br /&gt;
;&lt;br /&gt;
; eg. !insertmacro CHECKBOXCHECKER &amp;quot;${DIALOG1}&amp;quot; &amp;quot;${CHK_BLUE}|${CHK_RED}|${CHK_GREEN}|${CHK_BROWN}&amp;quot; 2 3&lt;br /&gt;
;&lt;br /&gt;
; FILE:          INI-file in $pluginsdir&lt;br /&gt;
; CONTROLGROUP:  pipe delimited list of controls; ${BUTTON1}|${CHECKBOX}|${TEXTFIELD}&lt;br /&gt;
; MIN/MAX:       at least ${MIN} and no more than ${MAX} controls must be in activated state&lt;br /&gt;
;&lt;br /&gt;
; Requires:&lt;br /&gt;
;&lt;br /&gt;
; !include &amp;quot;WordFunc.nsh&amp;quot;&lt;br /&gt;
; !insertmacro WordFind&lt;br /&gt;
;&lt;br /&gt;
!macro CHECKBOXCHECKER FILE CONTROLGROUP MIN MAX&lt;br /&gt;
&lt;br /&gt;
  Push $R0 ;holds element&lt;br /&gt;
  Push $R1 ;counter&lt;br /&gt;
  Push $R2 ;count activated elements&lt;br /&gt;
  Push $R3 ;state of the control&lt;br /&gt;
  &lt;br /&gt;
  StrCpy $R1 1&lt;br /&gt;
  StrCpy $R2 0&lt;br /&gt;
  ${Do}&lt;br /&gt;
    ClearErrors&lt;br /&gt;
    ${WordFind} &amp;quot;${CONTROLGROUP}&amp;quot; &amp;quot;|&amp;quot; &amp;quot;E+$R1&amp;quot; $R0&lt;br /&gt;
&lt;br /&gt;
    ${If} ${Errors}&lt;br /&gt;
    ${OrIf} $R0 == &amp;quot;&amp;quot;&lt;br /&gt;
      ${ExitDo}&lt;br /&gt;
    ${EndIf}&lt;br /&gt;
&lt;br /&gt;
    ; Put state change in flags of element as well&lt;br /&gt;
    !insertmacro MUI_INSTALLOPTIONS_READ $R3 &amp;quot;${FILE}&amp;quot; &amp;quot;$R0&amp;quot; &amp;quot;State&amp;quot;&lt;br /&gt;
    ${If} &amp;quot;$R3&amp;quot; == &amp;quot;1&amp;quot;&lt;br /&gt;
      IntOp $R2 $R2 + 1&lt;br /&gt;
    ${EndIf}&lt;br /&gt;
&lt;br /&gt;
    IntOp $R1 $R1 + 1&lt;br /&gt;
  ${Loop}&lt;br /&gt;
&lt;br /&gt;
  ${If} $R2 &amp;lt; ${MIN}&lt;br /&gt;
  ${OrIf} $R2 &amp;gt; ${MAX}&lt;br /&gt;
    MessageBox MB_OK|MB_ICONSTOP &amp;quot;$(TEXT_LIMITATIONSEXCEEDED)&amp;quot;&lt;br /&gt;
    Abort&lt;br /&gt;
  ${EndIf}&lt;br /&gt;
&lt;br /&gt;
  Pop $R3&lt;br /&gt;
  Pop $R2&lt;br /&gt;
  Pop $R1&lt;br /&gt;
  Pop $R0&lt;br /&gt;
&lt;br /&gt;
!macroend&lt;br /&gt;
&amp;lt;/highlight-nsis&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sample ==&lt;br /&gt;
&lt;br /&gt;
Have a look at the sample.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;highlight-nsis&amp;gt;&lt;br /&gt;
;---------------------&lt;br /&gt;
;Include Modern UI&lt;br /&gt;
&lt;br /&gt;
  !include &amp;quot;MUI.nsh&amp;quot;&lt;br /&gt;
  !include &amp;quot;LogicLib.nsh&amp;quot;&lt;br /&gt;
;----------------------&lt;br /&gt;
;defines for Dialog 1 - sample.ini&lt;br /&gt;
&lt;br /&gt;
  !define DIALOG1 &amp;quot;sample.ini&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  !define CHK_BLUE &amp;quot;Field 2&amp;quot;&lt;br /&gt;
  !define CHK_RED &amp;quot;Field 3&amp;quot;&lt;br /&gt;
  !define CHK_GREEN &amp;quot;Field 4&amp;quot;&lt;br /&gt;
  !define CHK_BROWN &amp;quot;Field 5&amp;quot;&lt;br /&gt;
  !define CHK_PROXYSETTINGS &amp;quot;Field 6&amp;quot;&lt;br /&gt;
  !define GRP_PROXYOPTIONS &amp;quot;Field 7&amp;quot;&lt;br /&gt;
  !define LBL_IPADDRESS &amp;quot;Field 8&amp;quot;&lt;br /&gt;
  !define TXT_IPADDRESS &amp;quot;Field 9&amp;quot;&lt;br /&gt;
  !define LBL_PORT1 &amp;quot;Field 10&amp;quot;&lt;br /&gt;
  !define TXT_PORT1 &amp;quot;Field 11&amp;quot;&lt;br /&gt;
  !define CHK_ENCRYPTION &amp;quot;Field 12&amp;quot;&lt;br /&gt;
  !define DRQ_NSISPATH &amp;quot;Field 14&amp;quot;&lt;br /&gt;
  !define CMD_AUTODETECTNSISPATH &amp;quot;Field 15&amp;quot;&lt;br /&gt;
;--------------------------------&lt;br /&gt;
;General&lt;br /&gt;
&lt;br /&gt;
  ;Name and file&lt;br /&gt;
  Name &amp;quot;MUI installation validation example&amp;quot;&lt;br /&gt;
  OutFile &amp;quot;test.exe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  ;Default installation folder&lt;br /&gt;
  InstallDir &amp;quot;$PROGRAMFILES\MUI validate&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  ;Get installation folder from registry if available&lt;br /&gt;
  InstallDirRegKey HKCU &amp;quot;Software\MUI validate&amp;quot; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
;--------------------------------&lt;br /&gt;
;Pages&lt;br /&gt;
&lt;br /&gt;
  Page custom InitPage ValidatePage&lt;br /&gt;
  !insertmacro MUI_PAGE_DIRECTORY&lt;br /&gt;
  !insertmacro MUI_PAGE_INSTFILES&lt;br /&gt;
 &lt;br /&gt;
;--------------------------------&lt;br /&gt;
;Interface Settings&lt;br /&gt;
&lt;br /&gt;
  !define MUI_ABORTWARNING&lt;br /&gt;
  &lt;br /&gt;
;--------------------------------&lt;br /&gt;
;Languages&lt;br /&gt;
 &lt;br /&gt;
  !insertmacro MUI_LANGUAGE &amp;quot;English&amp;quot;&lt;br /&gt;
&lt;br /&gt;
;--------------------------------&lt;br /&gt;
;Reserve Files&lt;br /&gt;
  &lt;br /&gt;
  ;If you are using solid compression, files that are required before&lt;br /&gt;
  ;the actual installation should be stored first in the data block,&lt;br /&gt;
  ;because this will make your installer start faster.&lt;br /&gt;
  &lt;br /&gt;
  ReserveFile &amp;quot;sample.ini&amp;quot;&lt;br /&gt;
  !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS&lt;br /&gt;
&lt;br /&gt;
;--------------------------------&lt;br /&gt;
;Variables&lt;br /&gt;
&lt;br /&gt;
  Var &amp;quot;tmp&amp;quot;&lt;br /&gt;
&lt;br /&gt;
!include &amp;quot;WordFunc.nsh&amp;quot;&lt;br /&gt;
!insertmacro WordReplace&lt;br /&gt;
!insertmacro WordFind&lt;br /&gt;
&lt;br /&gt;
; Activate a group of controls, depending on the state of one control&lt;br /&gt;
; &lt;br /&gt;
; Usage:&lt;br /&gt;
; &lt;br /&gt;
; eg. !insertmacro GROUPCONTROLS &amp;quot;${DIALOG1}&amp;quot; &amp;quot;${CHK_PROXYSETTINGS}&amp;quot; &amp;quot;${LBL_IPADDRESS}|${TXT_IPADDRESS}|${LBL_PORT1}|${TXT_PORT1}|${CHK_ENCRYPTION}&amp;quot;&lt;br /&gt;
; FILE:          INI-file in $pluginsdir&lt;br /&gt;
; SOURCECONTROL: RadioButton, Checkbox&lt;br /&gt;
; CONTROLGROUP:  pipe delimited list of controls; ${BUTTON1}|${CHECKBOX}|${TEXTFIELD}&lt;br /&gt;
;&lt;br /&gt;
; Requires:&lt;br /&gt;
;&lt;br /&gt;
; !include &amp;quot;WordFunc.nsh&amp;quot;&lt;br /&gt;
; !insertmacro WordReplace&lt;br /&gt;
; !insertmacro WordFind&lt;br /&gt;
;&lt;br /&gt;
!macro GROUPCONTROLS FILE SOURCECONTROL CONTROLGROUP&lt;br /&gt;
  Push $R0 ;holds element&lt;br /&gt;
  Push $R1 ;counter&lt;br /&gt;
  Push $R2 ;state of the control&lt;br /&gt;
  Push $R3 ;flags of the control / hwnd of the control&lt;br /&gt;
  &lt;br /&gt;
  !insertmacro MUI_INSTALLOPTIONS_READ $R2 &amp;quot;${FILE}&amp;quot; &amp;quot;${SOURCECONTROL}&amp;quot; &amp;quot;State&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  StrCpy $R1 1&lt;br /&gt;
  ${Do}&lt;br /&gt;
    ClearErrors&lt;br /&gt;
    ${WordFind} &amp;quot;${CONTROLGROUP}&amp;quot; &amp;quot;|&amp;quot; &amp;quot;E+$R1&amp;quot; $R0&lt;br /&gt;
&lt;br /&gt;
    ${If} ${Errors}&lt;br /&gt;
    ${OrIf} $R0 == &amp;quot;&amp;quot;&lt;br /&gt;
      ${ExitDo}&lt;br /&gt;
    ${EndIf}&lt;br /&gt;
&lt;br /&gt;
    ; Put state change in flags of element as well&lt;br /&gt;
    !insertmacro MUI_INSTALLOPTIONS_READ $R3 &amp;quot;${FILE}&amp;quot; &amp;quot;$R0&amp;quot; &amp;quot;Flags&amp;quot;&lt;br /&gt;
    ${If} &amp;quot;$R2&amp;quot; == &amp;quot;1&amp;quot;&lt;br /&gt;
      ${WordReplace} $R3 &amp;quot;DISABLED&amp;quot; &amp;quot;&amp;quot; &amp;quot;+&amp;quot; $R3&lt;br /&gt;
       ${WordReplace} $R3 &amp;quot;||&amp;quot; &amp;quot;|&amp;quot; &amp;quot;+&amp;quot; $R3&lt;br /&gt;
      !insertmacro MUI_INSTALLOPTIONS_WRITE &amp;quot;${FILE}&amp;quot; &amp;quot;$R0&amp;quot; &amp;quot;Flags&amp;quot; $R3&lt;br /&gt;
    ${Else}&lt;br /&gt;
      !insertmacro MUI_INSTALLOPTIONS_WRITE &amp;quot;${FILE}&amp;quot; &amp;quot;$R0&amp;quot; &amp;quot;Flags&amp;quot; &amp;quot;$R3|DISABLED&amp;quot;&lt;br /&gt;
    ${EndIf}&lt;br /&gt;
&lt;br /&gt;
    !insertmacro MUI_INSTALLOPTIONS_READ $R3 &amp;quot;${FILE}&amp;quot; &amp;quot;$R0&amp;quot; &amp;quot;HWND&amp;quot;&lt;br /&gt;
    EnableWindow $R3 $R2&lt;br /&gt;
    &lt;br /&gt;
    IntOp $R1 $R1 + 1&lt;br /&gt;
  ${Loop}&lt;br /&gt;
&lt;br /&gt;
  Pop $R3&lt;br /&gt;
  Pop $R2&lt;br /&gt;
  Pop $R1&lt;br /&gt;
  Pop $R0&lt;br /&gt;
&lt;br /&gt;
!macroend&lt;br /&gt;
&lt;br /&gt;
;change text field and put value in ini file&lt;br /&gt;
; &lt;br /&gt;
; Usage:&lt;br /&gt;
;&lt;br /&gt;
;  !insertmacro CHANGETEXTFIELD &amp;quot;${DIALOG1}&amp;quot; &amp;quot;${DRQ_NSISPATH}&amp;quot; $tmp&lt;br /&gt;
;&lt;br /&gt;
; FILE:    INI-file in $pluginsdir&lt;br /&gt;
; ELEMENT: name of the control&lt;br /&gt;
; VALUE:   value that should appear in control&lt;br /&gt;
;&lt;br /&gt;
!macro CHANGETEXTFIELD FILE ELEMENT VALUE&lt;br /&gt;
  Push $R0 ; holds value&lt;br /&gt;
  !insertmacro MUI_INSTALLOPTIONS_WRITE ${VALUE} &amp;quot;${FILE}&amp;quot; &amp;quot;${ELEMENT}&amp;quot; &amp;quot;State&amp;quot;&lt;br /&gt;
  !insertmacro MUI_INSTALLOPTIONS_READ $R0 &amp;quot;${FILE}&amp;quot; &amp;quot;${ELEMENT}&amp;quot; &amp;quot;HWND&amp;quot;&lt;br /&gt;
  SendMessage $R0 ${WM_SETTEXT} 0 &amp;quot;STR:${VALUE}&amp;quot;&lt;br /&gt;
  Pop $R0&lt;br /&gt;
!macroend&lt;br /&gt;
&lt;br /&gt;
; checks a group of checkboxes and counts how many of them&lt;br /&gt;
; are activated.&lt;br /&gt;
;&lt;br /&gt;
; Usage:&lt;br /&gt;
;&lt;br /&gt;
; Create a langstring containing an error message&lt;br /&gt;
; eg. LangString TEXT_LIMITATIONSEXEEDED ${LANG_ENGLISH} &amp;quot;Choose either two or three colours!&amp;quot;&lt;br /&gt;
;&lt;br /&gt;
; eg. !insertmacro CHECKBOXCHECKER &amp;quot;${DIALOG1}&amp;quot; &amp;quot;${CHK_BLUE}|${CHK_RED}|${CHK_GREEN}|${CHK_BROWN}&amp;quot; 2 3&lt;br /&gt;
;&lt;br /&gt;
; FILE:          INI-file in $pluginsdir&lt;br /&gt;
; CONTROLGROUP:  pipe delimited list of controls; ${BUTTON1}|${CHECKBOX}|${TEXTFIELD}&lt;br /&gt;
; MIN/MAX:       at least ${MIN} and no more than ${MAX} controls must be in activated state&lt;br /&gt;
;&lt;br /&gt;
; Requires:&lt;br /&gt;
;&lt;br /&gt;
; !include &amp;quot;WordFunc.nsh&amp;quot;&lt;br /&gt;
; !insertmacro WordFind&lt;br /&gt;
;&lt;br /&gt;
!macro CHECKBOXCHECKER FILE CONTROLGROUP MIN MAX&lt;br /&gt;
&lt;br /&gt;
  Push $R0 ;holds element&lt;br /&gt;
  Push $R1 ;counter&lt;br /&gt;
  Push $R2 ;count activated elements&lt;br /&gt;
  Push $R3 ;state of the control&lt;br /&gt;
  &lt;br /&gt;
  StrCpy $R1 1&lt;br /&gt;
  StrCpy $R2 0&lt;br /&gt;
  ${Do}&lt;br /&gt;
    ClearErrors&lt;br /&gt;
    ${WordFind} &amp;quot;${CONTROLGROUP}&amp;quot; &amp;quot;|&amp;quot; &amp;quot;E+$R1&amp;quot; $R0&lt;br /&gt;
&lt;br /&gt;
    ${If} ${Errors}&lt;br /&gt;
    ${OrIf} $R0 == &amp;quot;&amp;quot;&lt;br /&gt;
      ${ExitDo}&lt;br /&gt;
    ${EndIf}&lt;br /&gt;
&lt;br /&gt;
    ; Put state change in flags of element as well&lt;br /&gt;
    !insertmacro MUI_INSTALLOPTIONS_READ $R3 &amp;quot;${FILE}&amp;quot; &amp;quot;$R0&amp;quot; &amp;quot;State&amp;quot;&lt;br /&gt;
    ${If} &amp;quot;$R3&amp;quot; == &amp;quot;1&amp;quot;&lt;br /&gt;
      IntOp $R2 $R2 + 1&lt;br /&gt;
    ${EndIf}&lt;br /&gt;
&lt;br /&gt;
    IntOp $R1 $R1 + 1&lt;br /&gt;
  ${Loop}&lt;br /&gt;
&lt;br /&gt;
  ${If} $R2 &amp;lt; ${MIN}&lt;br /&gt;
  ${OrIf} $R2 &amp;gt; ${MAX}&lt;br /&gt;
    MessageBox MB_OK|MB_ICONSTOP &amp;quot;$(TEXT_LIMITATIONSEXCEEDED)&amp;quot;&lt;br /&gt;
    Abort&lt;br /&gt;
  ${EndIf}&lt;br /&gt;
&lt;br /&gt;
  Pop $R3&lt;br /&gt;
  Pop $R2&lt;br /&gt;
  Pop $R1&lt;br /&gt;
  Pop $R0&lt;br /&gt;
&lt;br /&gt;
!macroend&lt;br /&gt;
&lt;br /&gt;
;--------------------------------&lt;br /&gt;
;Installer Sections&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Dummy Section&amp;quot; SecDummy&lt;br /&gt;
&lt;br /&gt;
  SetOutPath &amp;quot;$INSTDIR&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  ;ADD YOUR OWN FILES HERE...&lt;br /&gt;
&lt;br /&gt;
SectionEnd&lt;br /&gt;
&lt;br /&gt;
;--------------------------------&lt;br /&gt;
;Installer Functions&lt;br /&gt;
&lt;br /&gt;
Function .onInit&lt;br /&gt;
&lt;br /&gt;
;  !insertmacro MUI_LANGDLL_DISPLAY&lt;br /&gt;
&lt;br /&gt;
FunctionEnd&lt;br /&gt;
&lt;br /&gt;
LangString TEXT_IO_TITLE ${LANG_ENGLISH} &amp;quot;Test page&amp;quot;&lt;br /&gt;
LangString TEXT_IO_SUBTITLE ${LANG_ENGLISH} &amp;quot;Test some things&amp;quot;&lt;br /&gt;
LangString TEXT_LIMITATIONSEXCEEDED ${LANG_ENGLISH} &amp;quot;Choose either two or three colours!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Function InitPage&lt;br /&gt;
&lt;br /&gt;
  ;Extract InstallOptions INI files&lt;br /&gt;
  !insertmacro MUI_INSTALLOPTIONS_EXTRACT &amp;quot;${DIALOG1}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  !insertmacro MUI_HEADER_TEXT &amp;quot;$(TEXT_IO_TITLE)&amp;quot; &amp;quot;$(TEXT_IO_SUBTITLE)&amp;quot;&lt;br /&gt;
  !insertmacro MUI_INSTALLOPTIONS_INITDIALOG &amp;quot;${DIALOG1}&amp;quot;&lt;br /&gt;
  !insertmacro GROUPCONTROLS &amp;quot;${DIALOG1}&amp;quot; &amp;quot;${CHK_PROXYSETTINGS}&amp;quot; &amp;quot;${LBL_IPADDRESS}|${TXT_IPADDRESS}|${LBL_PORT1}|${TXT_PORT1}|${CHK_ENCRYPTION}&amp;quot;&lt;br /&gt;
  !insertmacro MUI_INSTALLOPTIONS_SHOW  &lt;br /&gt;
&lt;br /&gt;
FunctionEnd&lt;br /&gt;
&lt;br /&gt;
Function ValidatePage&lt;br /&gt;
  ; handle notify event of element&lt;br /&gt;
  !insertmacro MUI_INSTALLOPTIONS_READ $tmp &amp;quot;${DIALOG1}&amp;quot; &amp;quot;Settings&amp;quot; &amp;quot;State&amp;quot;  &lt;br /&gt;
  ${Switch} &amp;quot;Field $tmp&amp;quot;&lt;br /&gt;
    ${Case} &amp;quot;${CHK_PROXYSETTINGS}&amp;quot;&lt;br /&gt;
      !insertmacro GROUPCONTROLS &amp;quot;${DIALOG1}&amp;quot; &amp;quot;${CHK_PROXYSETTINGS}&amp;quot; &amp;quot;${LBL_IPADDRESS}|${TXT_IPADDRESS}|${LBL_PORT1}|${TXT_PORT1}|${CHK_ENCRYPTION}&amp;quot;&lt;br /&gt;
      Abort&lt;br /&gt;
    ${Case} &amp;quot;${CMD_AUTODETECTNSISPATH}&amp;quot;&lt;br /&gt;
      ;read registry value and set text field&lt;br /&gt;
      ReadRegStr $tmp HKLM &amp;quot;Software\NSIS&amp;quot; &amp;quot;&amp;quot;&lt;br /&gt;
      !insertmacro CHANGETEXTFIELD &amp;quot;${DIALOG1}&amp;quot; &amp;quot;${DRQ_NSISPATH}&amp;quot; $tmp&lt;br /&gt;
      Abort      &lt;br /&gt;
  ${EndSwitch}&lt;br /&gt;
  &lt;br /&gt;
  ; check if 2 or 3 check boxes are activated&lt;br /&gt;
  !insertmacro CHECKBOXCHECKER &amp;quot;${DIALOG1}&amp;quot; &amp;quot;${CHK_BLUE}|${CHK_RED}|${CHK_GREEN}|${CHK_BROWN}&amp;quot; 2 3&lt;br /&gt;
&lt;br /&gt;
  ;  check if checkbox is activated&lt;br /&gt;
  !insertmacro MUI_INSTALLOPTIONS_READ $tmp &amp;quot;${DIALOG1}&amp;quot; &amp;quot;${CHK_PROXYSETTINGS}&amp;quot; &amp;quot;State&amp;quot;  &lt;br /&gt;
  ${If} $tmp == 1&lt;br /&gt;
    Var /GLOBAL ip1&lt;br /&gt;
    Var /GLOBAL port1&lt;br /&gt;
  &lt;br /&gt;
    !insertmacro MUI_INSTALLOPTIONS_READ $ip1 &amp;quot;${DIALOG1}&amp;quot; &amp;quot;${TXT_IPADDRESS}&amp;quot; &amp;quot;State&amp;quot;&lt;br /&gt;
    Push &amp;quot;$ip1&amp;quot;&lt;br /&gt;
    Call ValidateIP&lt;br /&gt;
    ${If} ${Errors}&lt;br /&gt;
      MessageBox MB_ICONEXCLAMATION &amp;quot;IP not correct! $ip1&amp;quot;&lt;br /&gt;
      Abort&lt;br /&gt;
    ${EndIf}&lt;br /&gt;
  &lt;br /&gt;
    !insertmacro MUI_INSTALLOPTIONS_READ $port1 &amp;quot;${DIALOG1}&amp;quot; &amp;quot;${TXT_PORT1}&amp;quot; &amp;quot;State&amp;quot;&lt;br /&gt;
    ${If} $port1 &amp;lt; 1024&lt;br /&gt;
    ${OrIf} $port1 &amp;gt; 32768&lt;br /&gt;
      MessageBox MB_ICONEXCLAMATION &amp;quot;Port not valid!&amp;quot;&lt;br /&gt;
      Abort&lt;br /&gt;
    ${EndIf}&lt;br /&gt;
  ${EndIf}&lt;br /&gt;
  &lt;br /&gt;
  ; check for file in NSIS&amp;#039; path&lt;br /&gt;
  !insertmacro MUI_INSTALLOPTIONS_READ $tmp &amp;quot;${DIALOG1}&amp;quot; &amp;quot;${DRQ_NSISPATH}&amp;quot; &amp;quot;State&amp;quot;&lt;br /&gt;
  ${Unless} ${FileExists} &amp;quot;$tmp\makensis.exe&amp;quot;&lt;br /&gt;
    MessageBox MB_OK|MB_ICONEXCLAMATION &amp;quot;makensis.exe in NSIS path not found!&amp;quot;&lt;br /&gt;
    Abort&lt;br /&gt;
  ${EndIf}&lt;br /&gt;
   &lt;br /&gt;
  ; TODO: save values to ini file/registry...&lt;br /&gt;
    &lt;br /&gt;
FunctionEnd&lt;br /&gt;
&lt;br /&gt;
; http://nsis.sourceforge.net/Validate_IP_function&lt;br /&gt;
!include WordFunc.nsh&lt;br /&gt;
 &lt;br /&gt;
!insertmacro WordFind&lt;br /&gt;
!insertmacro StrFilter&lt;br /&gt;
Function ValidateIP&lt;br /&gt;
 &lt;br /&gt;
  Exch $0&lt;br /&gt;
  Push $1&lt;br /&gt;
  Push $2&lt;br /&gt;
 &lt;br /&gt;
  ${StrFilter} $0 1 &amp;quot;.&amp;quot; &amp;quot;&amp;quot; $1&lt;br /&gt;
  ${If} $0 != $1&lt;br /&gt;
    # invalid charcaters used&lt;br /&gt;
    #   example: a127.0.0.1&lt;br /&gt;
    Goto error&lt;br /&gt;
  ${EndIf}&lt;br /&gt;
 &lt;br /&gt;
  ${WordFind} $0 . &amp;quot;#&amp;quot; $1&lt;br /&gt;
  ${If} $1 != 4&lt;br /&gt;
    # wrong number of numbers&lt;br /&gt;
    #   example: 127.0.0.&lt;br /&gt;
    Goto error&lt;br /&gt;
  ${EndIf}&lt;br /&gt;
 &lt;br /&gt;
  ${WordFind} $0 . &amp;quot;*&amp;quot; $1&lt;br /&gt;
  ${If} $1 != 3&lt;br /&gt;
    # wrong number of dots&lt;br /&gt;
    #   example: 127.0.0.1.&lt;br /&gt;
    Goto error&lt;br /&gt;
  ${EndIf}&lt;br /&gt;
 &lt;br /&gt;
  ${For} $2 1 4&lt;br /&gt;
    ${WordFind} $0 . +$2 $1&lt;br /&gt;
 &lt;br /&gt;
    ${If} $1 &amp;gt; 255&lt;br /&gt;
    ${OrIf} $1 &amp;lt; 0&lt;br /&gt;
      # invalid number&lt;br /&gt;
      #   example: 500.0.0.1&lt;br /&gt;
      Goto error&lt;br /&gt;
    ${EndIf}&lt;br /&gt;
  ${Next}&lt;br /&gt;
 &lt;br /&gt;
  Pop $2&lt;br /&gt;
  Pop $1&lt;br /&gt;
  Pop $0&lt;br /&gt;
 &lt;br /&gt;
  ClearErrors&lt;br /&gt;
 &lt;br /&gt;
  Return&lt;br /&gt;
 &lt;br /&gt;
  error:&lt;br /&gt;
 &lt;br /&gt;
    Pop $2&lt;br /&gt;
    Pop $1&lt;br /&gt;
    Pop $0&lt;br /&gt;
 &lt;br /&gt;
    SetErrors&lt;br /&gt;
 &lt;br /&gt;
FunctionEnd&lt;br /&gt;
&amp;lt;/highlight-nsis&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== sample.ini ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;highlight-nsis&amp;gt;&lt;br /&gt;
; Ini file generated by the HM NIS Edit IO designer.&lt;br /&gt;
[Settings]&lt;br /&gt;
NumFields=15&lt;br /&gt;
&lt;br /&gt;
[Field 1]&lt;br /&gt;
Type=Groupbox&lt;br /&gt;
Text=Colour (choose 2 or 3)&lt;br /&gt;
Left=0&lt;br /&gt;
Right=112&lt;br /&gt;
Top=0&lt;br /&gt;
Bottom=56&lt;br /&gt;
&lt;br /&gt;
[Field 2]&lt;br /&gt;
Type=CheckBox&lt;br /&gt;
Text=&amp;amp;Blue&lt;br /&gt;
Left=5&lt;br /&gt;
Right=80&lt;br /&gt;
Top=10&lt;br /&gt;
Bottom=20&lt;br /&gt;
State=0&lt;br /&gt;
&lt;br /&gt;
[Field 3]&lt;br /&gt;
Type=CheckBox&lt;br /&gt;
Text=&amp;amp;Red&lt;br /&gt;
Left=5&lt;br /&gt;
Right=80&lt;br /&gt;
Top=20&lt;br /&gt;
Bottom=30&lt;br /&gt;
&lt;br /&gt;
[Field 4]&lt;br /&gt;
Type=CheckBox&lt;br /&gt;
Text=&amp;amp;Green&lt;br /&gt;
Left=5&lt;br /&gt;
Right=80&lt;br /&gt;
Top=30&lt;br /&gt;
Bottom=40&lt;br /&gt;
&lt;br /&gt;
[Field 5]&lt;br /&gt;
Type=CheckBox&lt;br /&gt;
Text=&amp;amp;Brown&lt;br /&gt;
Left=5&lt;br /&gt;
Right=79&lt;br /&gt;
Top=40&lt;br /&gt;
Bottom=49&lt;br /&gt;
&lt;br /&gt;
[Field 6]&lt;br /&gt;
Type=Checkbox&lt;br /&gt;
Text=&amp;amp;Set proxy options (NOTIFY)&lt;br /&gt;
Flags=NOTIFY&lt;br /&gt;
Left=117&lt;br /&gt;
Right=225&lt;br /&gt;
Top=0&lt;br /&gt;
Bottom=10&lt;br /&gt;
&lt;br /&gt;
[Field 7]&lt;br /&gt;
Type=Groupbox&lt;br /&gt;
Left=117&lt;br /&gt;
Right=-1&lt;br /&gt;
Top=10&lt;br /&gt;
Bottom=56&lt;br /&gt;
Text=Proxy options&lt;br /&gt;
&lt;br /&gt;
[Field 8]&lt;br /&gt;
Type=Label&lt;br /&gt;
Text=&amp;amp;IP-Address:&lt;br /&gt;
Left=122&lt;br /&gt;
Right=165&lt;br /&gt;
Top=22&lt;br /&gt;
Bottom=30&lt;br /&gt;
&lt;br /&gt;
[Field 9]&lt;br /&gt;
Type=Text&lt;br /&gt;
Left=122&lt;br /&gt;
Right=240&lt;br /&gt;
Top=30&lt;br /&gt;
Bottom=42&lt;br /&gt;
&lt;br /&gt;
[Field 10]&lt;br /&gt;
Type=Label&lt;br /&gt;
Text=&amp;amp;Port:&lt;br /&gt;
Left=244&lt;br /&gt;
Right=264&lt;br /&gt;
Top=22&lt;br /&gt;
Bottom=30&lt;br /&gt;
&lt;br /&gt;
[Field 11]&lt;br /&gt;
Type=Text&lt;br /&gt;
Left=244&lt;br /&gt;
Right=-10&lt;br /&gt;
Top=30&lt;br /&gt;
Bottom=42&lt;br /&gt;
&lt;br /&gt;
[Field 12]&lt;br /&gt;
Type=Checkbox&lt;br /&gt;
Text=&amp;amp;Use encryption&lt;br /&gt;
Left=122&lt;br /&gt;
Right=187&lt;br /&gt;
Top=44&lt;br /&gt;
Bottom=54&lt;br /&gt;
&lt;br /&gt;
[Field 13]&lt;br /&gt;
Type=Groupbox&lt;br /&gt;
Text=Set NSIS path or click autodetect&lt;br /&gt;
Left=117&lt;br /&gt;
Right=-1&lt;br /&gt;
Top=61&lt;br /&gt;
Bottom=116&lt;br /&gt;
&lt;br /&gt;
[Field 14]&lt;br /&gt;
Type=DirRequest&lt;br /&gt;
Left=122&lt;br /&gt;
Right=-10&lt;br /&gt;
Top=77&lt;br /&gt;
Bottom=89&lt;br /&gt;
&lt;br /&gt;
[Field 15]&lt;br /&gt;
Type=Button&lt;br /&gt;
Text=&amp;amp;Autodetect&lt;br /&gt;
Flags=NOTIFY&lt;br /&gt;
Left=245&lt;br /&gt;
Right=-10&lt;br /&gt;
Top=92&lt;br /&gt;
Bottom=106&lt;br /&gt;
&amp;lt;/highlight-nsis&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Code Examples]]&lt;/div&gt;</summary>
		<author><name>Bholliger</name></author>
	</entry>
</feed>