<?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=LGP_Startup%2FShutdown_Script</id>
	<title>LGP Startup/Shutdown Script - 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=LGP_Startup%2FShutdown_Script"/>
	<link rel="alternate" type="text/html" href="https://nsis.sourceforge.io/mediawiki/index.php?title=LGP_Startup/Shutdown_Script&amp;action=history"/>
	<updated>2026-08-13T10:06:37Z</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=LGP_Startup/Shutdown_Script&amp;diff=24724&amp;oldid=prev</id>
		<title>Zinthose: /* NSIS Library */ Added Defines to help with Script locations</title>
		<link rel="alternate" type="text/html" href="https://nsis.sourceforge.io/mediawiki/index.php?title=LGP_Startup/Shutdown_Script&amp;diff=24724&amp;oldid=prev"/>
		<updated>2016-02-12T10:08:36Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;NSIS Library: &lt;/span&gt; Added Defines to help with Script locations&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 10:08, 12 February 2016&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-l119&quot;&gt;Line 119:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 119:&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;!define _LGPScript_INIFILE &amp;#039;${_LGPScript_INIPATH}\Scripts\scripts.ini&amp;#039;&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;!define _LGPScript_INIFILE &amp;#039;${_LGPScript_INIPATH}\Scripts\scripts.ini&amp;#039;&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;!define _LGPScript_REGPATH &amp;#039;SOFTWARE\Policies\Microsoft\Windows\System\Scripts&amp;#039;&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;!define _LGPScript_REGPATH &amp;#039;SOFTWARE\Policies\Microsoft\Windows\System\Scripts&amp;#039;&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;   &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; &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;!define _LGPScript_Path_Machine_StartUp &lt;/ins&gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;#039;${_LGPScript_INIPATH}\Scripts\Startup&amp;#039;&lt;/ins&gt;&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;!define _LGPScript_Path_Machine_Shutdown &amp;#039;${_LGPScript_INIPATH}\Scripts\Shutdown&amp;#039;&lt;/ins&gt;&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;!define _LGPScript_Path_User_StartUp     &amp;#039;$SYSDIR\GroupPolicy\User\Scripts\Startup&amp;#039;&lt;/ins&gt;&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;!define _LGPScript_Path_User_Shutdown    &amp;#039;$SYSDIR\GroupPolicy\User\Scripts\Shutdown&amp;#039;&lt;/ins&gt;&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;/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;!include x64.nsh&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;!include x64.nsh&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;!include LogicLib.nsh&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;!include LogicLib.nsh&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key n22049_wiki-wiki_:diff::1.12:old-24679:rev-24724 --&gt;
&lt;/table&gt;</summary>
		<author><name>Zinthose</name></author>
	</entry>
	<entry>
		<id>https://nsis.sourceforge.io/mediawiki/index.php?title=LGP_Startup/Shutdown_Script&amp;diff=24679&amp;oldid=prev</id>
		<title>Zinthose: /* Eample */</title>
		<link rel="alternate" type="text/html" href="https://nsis.sourceforge.io/mediawiki/index.php?title=LGP_Startup/Shutdown_Script&amp;diff=24679&amp;oldid=prev"/>
		<updated>2016-01-07T13:02:30Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Eample&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 13:02, 7 January 2016&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-l38&quot;&gt;Line 38:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 38:&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;== Code ==&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;== Code ==&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;=== Eample ===&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;=== Eample ===&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;&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;The following example demonstrates how to add Notepad to the system startup and shutdown.  Not exactly useful but meh.. it was simple and shows how it executes before logon and after shutdown.&lt;/ins&gt;&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;&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;&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;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;!-- diff cache key n22049_wiki-wiki_:diff::1.12:old-17432:rev-24679 --&gt;
&lt;/table&gt;</summary>
		<author><name>Zinthose</name></author>
	</entry>
	<entry>
		<id>https://nsis.sourceforge.io/mediawiki/index.php?title=LGP_Startup/Shutdown_Script&amp;diff=17432&amp;oldid=prev</id>
		<title>Zinthose at 18:34, 23 July 2009</title>
		<link rel="alternate" type="text/html" href="https://nsis.sourceforge.io/mediawiki/index.php?title=LGP_Startup/Shutdown_Script&amp;diff=17432&amp;oldid=prev"/>
		<updated>2009-07-23T18:34:46Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://nsis.sourceforge.io/mediawiki/index.php?title=LGP_Startup/Shutdown_Script&amp;amp;diff=17432&amp;amp;oldid=17235&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Zinthose</name></author>
	</entry>
	<entry>
		<id>https://nsis.sourceforge.io/mediawiki/index.php?title=LGP_Startup/Shutdown_Script&amp;diff=17235&amp;oldid=prev</id>
		<title>Zinthose: /* NSIS Library */</title>
		<link rel="alternate" type="text/html" href="https://nsis.sourceforge.io/mediawiki/index.php?title=LGP_Startup/Shutdown_Script&amp;diff=17235&amp;oldid=prev"/>
		<updated>2009-06-11T18:25:50Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;NSIS Library&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;a href=&quot;https://nsis.sourceforge.io/mediawiki/index.php?title=LGP_Startup/Shutdown_Script&amp;amp;diff=17235&amp;amp;oldid=17234&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Zinthose</name></author>
	</entry>
	<entry>
		<id>https://nsis.sourceforge.io/mediawiki/index.php?title=LGP_Startup/Shutdown_Script&amp;diff=17234&amp;oldid=prev</id>
		<title>Zinthose: /* Origin */  Typo</title>
		<link rel="alternate" type="text/html" href="https://nsis.sourceforge.io/mediawiki/index.php?title=LGP_Startup/Shutdown_Script&amp;diff=17234&amp;oldid=prev"/>
		<updated>2009-06-11T13:16:14Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Origin: &lt;/span&gt;  Typo&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 13:16, 11 June 2009&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-l7&quot;&gt;Line 7:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 7:&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;== Origin ==&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;== Origin ==&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;I needed to deploy the nVidia driver update to the systems within my company.  To make the process as painless as possible, I wanted the process to run before the user logs into the system as the install requires a reboot.  By using the Local Group Policy Scripting service, we are able to perform the update without &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;forci ng &lt;/del&gt;the user to log on twice due to reboot. This also further prevents the user from interrupting the update.&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;I needed to deploy the nVidia driver update to the systems within my company.  To make the process as painless as possible, I wanted the process to run before the user logs into the system as the install requires a reboot.  By using the Local Group Policy Scripting service, we are able to perform the update without &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;forcing &lt;/ins&gt;the user to log on twice due to reboot. This also further prevents the user from interrupting the update.&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;== Purpose ==&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;== Purpose ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key n22049_wiki-wiki_:diff::1.12:old-17232:rev-17234 --&gt;
&lt;/table&gt;</summary>
		<author><name>Zinthose</name></author>
	</entry>
	<entry>
		<id>https://nsis.sourceforge.io/mediawiki/index.php?title=LGP_Startup/Shutdown_Script&amp;diff=17232&amp;oldid=prev</id>
		<title>Zinthose: Initial ALPHA Release</title>
		<link rel="alternate" type="text/html" href="https://nsis.sourceforge.io/mediawiki/index.php?title=LGP_Startup/Shutdown_Script&amp;diff=17232&amp;oldid=prev"/>
		<updated>2009-06-11T03:41:04Z</updated>

		<summary type="html">&lt;p&gt;Initial ALPHA Release&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 03:41, 11 June 2009&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-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&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;[[Category:Headers]]&lt;/ins&gt;&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;{{PageAuthor|Zinthose}}&lt;/ins&gt;&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;{| style=&quot;width:60%; margin:1ex auto; border:4px solid red; background-color:yellow;&quot; &lt;/ins&gt;&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;| style=&quot;text-align: center; vertical-align: top;&quot; | &#039;&#039;&#039;UNSTABLE RELEASE&#039;&#039;&#039;&lt;/ins&gt;&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;| This release is in development and should not be used in a production environment.&lt;/ins&gt;&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;&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;&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;== Origin ==&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;== Origin ==&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;I needed to deploy the nVidia driver update to the systems within my company.  To make the process as painless as possible, I wanted the process to run before the user logs into the system as the install requires a reboot.  By using the Local Group Policy Scripting service, we are able to perform the update without &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;forcing &lt;/del&gt;the user to log on twice due to reboot. This also further prevents the user from interrupting the update.&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;I needed to deploy the nVidia driver update to the systems within my company.  To make the process as painless as possible, I wanted the process to run before the user logs into the system as the install requires a reboot.  By using the Local Group Policy Scripting service, we are able to perform the update without &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;forci ng &lt;/ins&gt;the user to log on twice due to reboot. This also further prevents the user from interrupting the update.&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;== Purpose ==&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;== Purpose ==&lt;/div&gt;&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-l8&quot;&gt;Line 8:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 15:&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;The scripts need to be removed after execution.  This has the potential to enter a continuous reboot cycle if installing software that reboots after completion but fails to remove the LGP Script entry.  If you get into this situation, you will need to boot the system into safe mode and remove the entries manually.  Removal can be done by modifying the Registry and the script.ini files manually, running a previously generated &amp;quot;removal&amp;quot; NSI script, or using the GPEdit.msc utility.&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;The scripts need to be removed after execution.  This has the potential to enter a continuous reboot cycle if installing software that reboots after completion but fails to remove the LGP Script entry.  If you get into this situation, you will need to boot the system into safe mode and remove the entries manually.  Removal can be done by modifying the Registry and the script.ini files manually, running a previously generated &amp;quot;removal&amp;quot; NSI script, or using the GPEdit.msc utility.&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;&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;DO NOT ATTEMPT TO USE THIS IF YOU DON&amp;#039;T UNDERSTAND WHAT THE LOCAL GROUP POLICY SCRIPTS ARE AND DO. USE AT YOUR OWN RISK!&amp;#039;&amp;#039;&amp;#039;&amp;lt;/font&amp;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;&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;DO NOT ATTEMPT TO USE THIS IF YOU DON&amp;#039;T UNDERSTAND WHAT THE LOCAL GROUP POLICY SCRIPTS ARE AND DO.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;br /&amp;gt;&lt;/ins&gt;USE AT YOUR OWN RISK!&amp;#039;&amp;#039;&amp;#039;&amp;lt;/font&amp;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;== Functions ==&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;== Functions ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key n22049_wiki-wiki_:diff::1.12:old-17231:rev-17232 --&gt;
&lt;/table&gt;</summary>
		<author><name>Zinthose</name></author>
	</entry>
	<entry>
		<id>https://nsis.sourceforge.io/mediawiki/index.php?title=LGP_Startup/Shutdown_Script&amp;diff=17231&amp;oldid=prev</id>
		<title>Zinthose: /* NSIS Library */</title>
		<link rel="alternate" type="text/html" href="https://nsis.sourceforge.io/mediawiki/index.php?title=LGP_Startup/Shutdown_Script&amp;diff=17231&amp;oldid=prev"/>
		<updated>2009-06-11T03:26:07Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;NSIS Library&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 03:26, 11 June 2009&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-l189&quot;&gt;Line 189:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 189:&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;         ${LGPScript::_GetLGPRegPath} $0 $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;         ${LGPScript::_GetLGPRegPath} $0 $1&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;         ${if} $1 == -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;         ${if} $1 == -1&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;             ## &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Nothoing &lt;/del&gt;to delete&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;             ## &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Nothing &lt;/ins&gt;to delete&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;             StrCpy $0 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;1&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;             StrCpy $0 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;0&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;div&gt;             Goto FunctionExit&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;             Goto FunctionExit&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;         ${endif}&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;         ${endif}&lt;/div&gt;&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-l197&quot;&gt;Line 197:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 197:&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;         ${registry::KeyExists} &amp;quot;HKLM\$1&amp;quot; $2&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;         ${registry::KeyExists} &amp;quot;HKLM\$1&amp;quot; $2&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;         ${If} $2 == -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;         ${If} $2 == -1&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;             ## &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Nothoing &lt;/del&gt;to delete&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;             ## &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Nothing &lt;/ins&gt;to delete&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;             StrCpy $0 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2&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;             StrCpy $0 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;0&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;div&gt;             Goto FunctionExit&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;             Goto FunctionExit&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;         ${EndIf}&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;         ${EndIf}&lt;/div&gt;&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-l307&quot;&gt;Line 307:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 307:&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;             ## Previously Defined BreakOut&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;             ## Previously Defined BreakOut&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;             StrCpy $0 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;1&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;             StrCpy $0 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;0&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;div&gt;             Goto FunctionExit&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;             Goto FunctionExit&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;         ${endif}&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;         ${endif}&lt;/div&gt;&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-l333&quot;&gt;Line 333:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 333:&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;         ${If} $4 == -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;         ${If} $4 == -1&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;             StrCpy $0 -&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2&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;             StrCpy $0 -&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;1&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;div&gt;             Goto FunctionExit&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;             Goto FunctionExit&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;         ${EndIf}&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;         ${EndIf}&lt;/div&gt;&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-l339&quot;&gt;Line 339:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 339:&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;         ${registry::Write} &amp;quot;HKLM\$3&amp;quot; &amp;quot;Parameters&amp;quot;   `$0` &amp;quot;REG_SZ&amp;quot; $4&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;         ${registry::Write} &amp;quot;HKLM\$3&amp;quot; &amp;quot;Parameters&amp;quot;   `$0` &amp;quot;REG_SZ&amp;quot; $4&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;         ${If} $4 == -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;         ${If} $4 == -1&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;             StrCpy $0 -&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2&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;             StrCpy $0 -&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;1&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;div&gt;             Goto FunctionExit&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;             Goto FunctionExit&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;         ${EndIf}&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;         ${EndIf}&lt;/div&gt;&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-l345&quot;&gt;Line 345:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 345:&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;         ${registry::Write} &amp;quot;HKLM\$3&amp;quot; &amp;quot;Script&amp;quot;       `$2` &amp;quot;REG_SZ&amp;quot; $4&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;         ${registry::Write} &amp;quot;HKLM\$3&amp;quot; &amp;quot;Script&amp;quot;       `$2` &amp;quot;REG_SZ&amp;quot; $4&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;         ${If} $4 == -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;         ${If} $4 == -1&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;             StrCpy $0 -&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2&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;             StrCpy $0 -&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;1&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;div&gt;             Goto FunctionExit&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;             Goto FunctionExit&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;         ${EndIf}&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;         ${EndIf}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key n22049_wiki-wiki_:diff::1.12:old-17230:rev-17231 --&gt;
&lt;/table&gt;</summary>
		<author><name>Zinthose</name></author>
	</entry>
	<entry>
		<id>https://nsis.sourceforge.io/mediawiki/index.php?title=LGP_Startup/Shutdown_Script&amp;diff=17230&amp;oldid=prev</id>
		<title>Zinthose: /* NSIS Library */</title>
		<link rel="alternate" type="text/html" href="https://nsis.sourceforge.io/mediawiki/index.php?title=LGP_Startup/Shutdown_Script&amp;diff=17230&amp;oldid=prev"/>
		<updated>2009-06-11T03:22:41Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;NSIS Library&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;a href=&quot;https://nsis.sourceforge.io/mediawiki/index.php?title=LGP_Startup/Shutdown_Script&amp;amp;diff=17230&amp;amp;oldid=17229&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Zinthose</name></author>
	</entry>
	<entry>
		<id>https://nsis.sourceforge.io/mediawiki/index.php?title=LGP_Startup/Shutdown_Script&amp;diff=17229&amp;oldid=prev</id>
		<title>Zinthose: /* NSIS Library */</title>
		<link rel="alternate" type="text/html" href="https://nsis.sourceforge.io/mediawiki/index.php?title=LGP_Startup/Shutdown_Script&amp;diff=17229&amp;oldid=prev"/>
		<updated>2009-06-11T03:19:11Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;NSIS Library&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 03:19, 11 June 2009&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-l97&quot;&gt;Line 97:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 97:&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;&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;!warning &amp;quot;ALPHA Release - Not Fully Tested &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;- 64bit support not fully implemented!&lt;/del&gt;&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;!warning &amp;quot;ALPHA Release - Not Fully Tested&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;!warning &amp;quot;Known Issues:$\n*  OS Version Checks need added ()&amp;quot;&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;!warning &amp;quot;Known Issues:$\n*  OS Version Checks need added ()&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;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;!-- diff cache key n22049_wiki-wiki_:diff::1.12:old-17228:rev-17229 --&gt;
&lt;/table&gt;</summary>
		<author><name>Zinthose</name></author>
	</entry>
	<entry>
		<id>https://nsis.sourceforge.io/mediawiki/index.php?title=LGP_Startup/Shutdown_Script&amp;diff=17228&amp;oldid=prev</id>
		<title>Zinthose: Created page with &#039;== Origin == I needed to deploy the nVidia driver update to the systems within my company.  To make the process as painless as possible, I wanted the process to run before the us...&#039;</title>
		<link rel="alternate" type="text/html" href="https://nsis.sourceforge.io/mediawiki/index.php?title=LGP_Startup/Shutdown_Script&amp;diff=17228&amp;oldid=prev"/>
		<updated>2009-06-11T03:18:35Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;#039;== Origin == I needed to deploy the nVidia driver update to the systems within my company.  To make the process as painless as possible, I wanted the process to run before the us...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Origin ==&lt;br /&gt;
I needed to deploy the nVidia driver update to the systems within my company.  To make the process as painless as possible, I wanted the process to run before the user logs into the system as the install requires a reboot.  By using the Local Group Policy Scripting service, we are able to perform the update without forcing the user to log on twice due to reboot. This also further prevents the user from interrupting the update.&lt;br /&gt;
&lt;br /&gt;
== Purpose ==&lt;br /&gt;
Intended for use in cooperate environments with a deployment system like Symantec&amp;#039;s Altiris or Microsoft&amp;#039;s System Management Servers.&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;!! Caution !!&amp;lt;/font&amp;gt; ==&lt;br /&gt;
The scripts need to be removed after execution.  This has the potential to enter a continuous reboot cycle if installing software that reboots after completion but fails to remove the LGP Script entry.  If you get into this situation, you will need to boot the system into safe mode and remove the entries manually.  Removal can be done by modifying the Registry and the script.ini files manually, running a previously generated &amp;quot;removal&amp;quot; NSI script, or using the GPEdit.msc utility.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;DO NOT ATTEMPT TO USE THIS IF YOU DON&amp;#039;T UNDERSTAND WHAT THE LOCAL GROUP POLICY SCRIPTS ARE AND DO. USE AT YOUR OWN RISK!&amp;#039;&amp;#039;&amp;#039;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
&amp;lt;highlight-nsis&amp;gt;&lt;br /&gt;
${LGPScript::Create}&lt;br /&gt;
     Mode       = &amp;#039;Startup&amp;#039; Or &amp;#039;Shutdown&amp;#039;&lt;br /&gt;
     Command    = ${PathToExecutable}&lt;br /&gt;
     Parameters = ${ParametersForCommand}&lt;br /&gt;
     ReturnCode = 0 = &amp;#039;Success&amp;#039; Or -1 = &amp;#039;Failed&amp;#039;&lt;br /&gt;
&lt;br /&gt;
${LGPScript::Remove}&lt;br /&gt;
     Mode       = &amp;#039;Startup&amp;#039; Or &amp;#039;Shutdown&amp;#039;&lt;br /&gt;
     Command    = ${PathToExecutable}&lt;br /&gt;
     Parameters = ${ParametersForCommand}&lt;br /&gt;
     ReturnCode = 0 = &amp;#039;Success&amp;#039; Or -1 = &amp;#039;Failed&amp;#039;&lt;br /&gt;
&lt;br /&gt;
${LGPScript::RemoveAll}&lt;br /&gt;
     Mode       = &amp;#039;Startup&amp;#039; Or &amp;#039;Shutdown&amp;#039;&lt;br /&gt;
     ReturnCode = 0 = &amp;#039;Success&amp;#039; Or -1 = &amp;#039;Failed&amp;#039;&lt;br /&gt;
&amp;lt;/highlight-nsis&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
=== Eample ===&lt;br /&gt;
&amp;lt;highlight-nsis&amp;gt;&lt;br /&gt;
&lt;br /&gt;
!include LGPScript.nsh&lt;br /&gt;
&lt;br /&gt;
RequestExecutionLevel Admin&lt;br /&gt;
&lt;br /&gt;
OutFile LGPScript_Example.exe&lt;br /&gt;
ShowInstDetails show&lt;br /&gt;
&lt;br /&gt;
### Main&lt;br /&gt;
Section -Main&lt;br /&gt;
    &lt;br /&gt;
    ### Command to Run&lt;br /&gt;
        StrCpy $0 &amp;quot;$WINDIR\Notepad.exe&amp;quot;&lt;br /&gt;
        &lt;br /&gt;
    ### Get the short pathname, as spaces break the LGP scripts&lt;br /&gt;
        GetFullPathName /SHORT $0 $0&lt;br /&gt;
    &lt;br /&gt;
    ### Prompt to remove any existing LGP scripts&lt;br /&gt;
        MessageBox MB_YESNO|MB_ICONQUESTION|MB_DEFBUTTON2|MB_SETFOREGROUND|MB_TOPMOST \&lt;br /&gt;
            &amp;quot;Do you want to remove all existing Local Group Policy Scripts?&amp;quot; \&lt;br /&gt;
            /SD IDNO IDNO SkipRemoveAll&lt;br /&gt;
    &lt;br /&gt;
    ### Remove Existing Startup Scripts      &lt;br /&gt;
        ${LGPScript::RemoveAll} &amp;#039;Startup&amp;#039; $1&lt;br /&gt;
        DetailPrint &amp;quot;RemoveAll startup LGP entries:$1&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    ### Remove Existing Shutdown Scripts&lt;br /&gt;
        ${LGPScript::RemoveAll} &amp;#039;Shutdown&amp;#039; $1&lt;br /&gt;
        DetailPrint &amp;quot;RemoveAll shutdown LGP entries:$1&amp;quot;&lt;br /&gt;
        SkipRemoveAll:&lt;br /&gt;
    &lt;br /&gt;
    ### Prompt to add the sample LGP script&lt;br /&gt;
        MessageBox MB_YESNO|MB_ICONQUESTION|MB_DEFBUTTON2|MB_SETFOREGROUND|MB_TOPMOST \&lt;br /&gt;
            &amp;quot;Do you want to add notepad to the startup LGP?&amp;quot; \&lt;br /&gt;
            /SD IDNO IDNO SkipStartup&lt;br /&gt;
            &lt;br /&gt;
    ### Add Startup Script&lt;br /&gt;
        ${LGPScript::Create} &amp;#039;Startup&amp;#039; &amp;#039;$0&amp;#039; &amp;#039;&amp;#039; $R1&lt;br /&gt;
        DetailPrint &amp;quot;Create startup LGP return code:$R1&amp;quot;&lt;br /&gt;
        SkipStartup:&lt;br /&gt;
        &lt;br /&gt;
    ### Prompt to add the sample LGP script&lt;br /&gt;
        MessageBox MB_YESNO|MB_ICONQUESTION|MB_DEFBUTTON2|MB_SETFOREGROUND|MB_TOPMOST \&lt;br /&gt;
            &amp;quot;Do you want to add notepad to the shutdown LGP?&amp;quot; \&lt;br /&gt;
            /SD IDNO IDNO SkipShutdown&lt;br /&gt;
            &lt;br /&gt;
    ### Add Shutdown Script&lt;br /&gt;
        ${LGPScript::Create} &amp;#039;Shutdown&amp;#039; &amp;#039;$0&amp;#039; &amp;#039;&amp;#039; $R1&lt;br /&gt;
        DetailPrint &amp;quot;Create shutdown LGP return code:$R1&amp;quot;&lt;br /&gt;
        SkipShutdown:&lt;br /&gt;
        &lt;br /&gt;
        DetailPrint &amp;quot;Reboot this system to see the results...&amp;quot;&lt;br /&gt;
SectionEnd&lt;br /&gt;
&amp;lt;/highlight-nsis&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== NSIS Library ===&lt;br /&gt;
&amp;lt;highlight-nsis&amp;gt;&lt;br /&gt;
; ---------------------&lt;br /&gt;
;       LGPScript.nsh&lt;br /&gt;
; ---------------------&lt;br /&gt;
;&lt;br /&gt;
; Allows for execution of an application at system startup just prior&lt;br /&gt;
; to user Logon using the Local Group Policy (LGP) Service.&lt;br /&gt;
;&lt;br /&gt;
&lt;br /&gt;
!warning &amp;quot;ALPHA Release - Not Fully Tested - 64bit support not fully implemented!&amp;quot;&lt;br /&gt;
!warning &amp;quot;Known Issues:$\n*  OS Version Checks need added ()&amp;quot;&lt;br /&gt;
&lt;br /&gt;
!ifndef ___LGPSCRIPT__NSH___&lt;br /&gt;
!define ___LGPSCRIPT__NSH___&lt;br /&gt;
&lt;br /&gt;
!define _LGPScript_INIPATH &amp;#039;$SYSDIR\GroupPolicy\Machine&amp;#039;&lt;br /&gt;
!define _LGPScript_INIFILE &amp;#039;${_LGPScript_INIPATH}\Scripts\scripts.ini&amp;#039;&lt;br /&gt;
!define _LGPScript_REGPATH &amp;#039;SOFTWARE\Policies\Microsoft\Windows\System\Scripts&amp;#039;&lt;br /&gt;
                     &lt;br /&gt;
!include x64.nsh&lt;br /&gt;
!include LogicLib.nsh&lt;br /&gt;
!include Registry.nsh # Available at: http://nsis.sourceforge.net/Registry_plug-in&lt;br /&gt;
&lt;br /&gt;
### Internal Function Macros&lt;br /&gt;
&lt;br /&gt;
    !define LGPScript::_SaveToINI &amp;quot;!insertmacro _LGPScript_SaveToINI&amp;quot;&lt;br /&gt;
    !macro _LGPScript_SaveToINI Mode&lt;br /&gt;
        Push &amp;quot;${Mode}&amp;quot;&lt;br /&gt;
        Call _LGPScript_SaveToINI&lt;br /&gt;
    !macroend&lt;br /&gt;
    &lt;br /&gt;
    !define LGPScript::_GetLGPRegPath &amp;quot;!insertmacro _LGPScript_GetLGPRegPath&amp;quot;&lt;br /&gt;
    !macro _LGPScript_GetLGPRegPath Mode RegPath&lt;br /&gt;
        Push &amp;quot;${Mode}&amp;quot;&lt;br /&gt;
        Call _LGPScript_GetLGPRegPath&lt;br /&gt;
        Pop ${RegPath}&lt;br /&gt;
    !macroend&lt;br /&gt;
    &lt;br /&gt;
    !define LGPScript::_ReindexLGP &amp;quot;!insertmacro _LGPScript_ReindexLGP&amp;quot;&lt;br /&gt;
    !macro _LGPScript_ReindexLGP Mode ReturnCode&lt;br /&gt;
        Push &amp;quot;${Mode}&amp;quot;&lt;br /&gt;
        Call _LGPScript_ReindexLGP&lt;br /&gt;
        Pop ${ReturnCode}&lt;br /&gt;
    !macroend&lt;br /&gt;
    &lt;br /&gt;
    !define LGPScript::_CreateLGP &amp;quot;!insertmacro _LGPScript_CreateLGP&amp;quot;&lt;br /&gt;
    !macro _LGPScript_CreateLGP RegPath ReturnCode&lt;br /&gt;
        Push &amp;quot;${RegPath}&amp;quot;&lt;br /&gt;
        Call _LGPScript_CreateLGP&lt;br /&gt;
        Pop ${ReturnCode}&lt;br /&gt;
    !macroend&lt;br /&gt;
&lt;br /&gt;
    !define LGPScript::Create &amp;quot;!insertmacro _LGPScript_Create&amp;quot;&lt;br /&gt;
    !macro _LGPScript_Create Mode Command Parameters ReturnCode&lt;br /&gt;
        Push &amp;quot;${Mode}&amp;quot;&lt;br /&gt;
        Push &amp;quot;${Command}&amp;quot;&lt;br /&gt;
        Push &amp;quot;${Parameters}&amp;quot;&lt;br /&gt;
        Call _LGPScript_Create&lt;br /&gt;
        Pop ${Returncode}&lt;br /&gt;
    !macroend&lt;br /&gt;
    &lt;br /&gt;
    !define LGPScript::Remove &amp;quot;!insertmacro _LGPScript_Remove&amp;quot;&lt;br /&gt;
    !macro _LGPScript_Remove Mode Command Parameters ReturnCode&lt;br /&gt;
        Push &amp;quot;${Mode}&amp;quot;&lt;br /&gt;
        Push &amp;quot;${Command}&amp;quot;&lt;br /&gt;
        Push &amp;quot;${Parameters}&amp;quot;&lt;br /&gt;
        Call _LGPScript_Remove&lt;br /&gt;
        Pop ${ReturnCode}&lt;br /&gt;
    !macroend&lt;br /&gt;
    &lt;br /&gt;
    !define LGPScript::RemoveAll &amp;quot;!insertmacro _LGPScript_RemoveAll&amp;quot;&lt;br /&gt;
    !Macro _LGPScript_RemoveAll Mode ReturnCode&lt;br /&gt;
        Push &amp;quot;${Mode}&amp;quot;&lt;br /&gt;
        Call _LGPScript_RemoveAll&lt;br /&gt;
        Pop ${ReturnCode} &lt;br /&gt;
    !macroend&lt;br /&gt;
    &lt;br /&gt;
    !define LGPScript::_Find &amp;quot;!insertmacro _LGPScript_Find&amp;quot;&lt;br /&gt;
    !macro _LGPScript_Find Mode Command Parameters RegPath&lt;br /&gt;
        Push &amp;quot;${Mode}&amp;quot;&lt;br /&gt;
        Push &amp;quot;${Command}&amp;quot;&lt;br /&gt;
        Push &amp;quot;${Parameters}&amp;quot;&lt;br /&gt;
        Call _LGPScript_Find&lt;br /&gt;
        Pop ${RegPath}&lt;br /&gt;
    !macroend&lt;br /&gt;
### Internal Functions&lt;br /&gt;
&lt;br /&gt;
Function _LGPScript_RemoveAll ; (Mode) (ReturnCode)&lt;br /&gt;
    ClearErrors&lt;br /&gt;
    ## Preserve registers&lt;br /&gt;
                    ; Stack: Mode&lt;br /&gt;
        Exch $0     ; Stack: $0&lt;br /&gt;
        Push $1      ; Stack: $1 $0&lt;br /&gt;
        Push $2      ; Stack: $2 $1 $0&lt;br /&gt;
        ; $0 = Mode&lt;br /&gt;
        &lt;br /&gt;
    ## Get LGP Path&lt;br /&gt;
        ${LGPScript::_GetLGPRegPath} $0 $1&lt;br /&gt;
        ${if} $1 == -1&lt;br /&gt;
            ## Nothoing to delete&lt;br /&gt;
            StrCpy $0 1&lt;br /&gt;
            Goto FunctionExit&lt;br /&gt;
        ${endif}&lt;br /&gt;
        &lt;br /&gt;
    ## Remove Registry Key&lt;br /&gt;
        ${registry::KeyExists} &amp;quot;HKLM\$1&amp;quot; $2&lt;br /&gt;
        ${If} $2 == -1&lt;br /&gt;
            ## Nothoing to delete&lt;br /&gt;
            StrCpy $0 2&lt;br /&gt;
            Goto FunctionExit&lt;br /&gt;
        ${EndIf}&lt;br /&gt;
        &lt;br /&gt;
        ${registry::DeleteKey} &amp;quot;HKLM\$1&amp;quot; $2&lt;br /&gt;
        ${If} $2 == -1&lt;br /&gt;
            ## Error Deleting Key&lt;br /&gt;
            StrCpy $0 -1&lt;br /&gt;
            Goto FunctionExit&lt;br /&gt;
        ${EndIf}&lt;br /&gt;
        &lt;br /&gt;
    ## Windows x64?&lt;br /&gt;
        ${If} ${RunningX64}&lt;br /&gt;
            ${DisableX64FSRedirection}&lt;br /&gt;
        ${EndIf}&lt;br /&gt;
        &lt;br /&gt;
    ## Remove from INI&lt;br /&gt;
        DeleteINISec &amp;quot;${_LGPScript_INIFILE}&amp;quot; $0&lt;br /&gt;
&lt;br /&gt;
        ## Windows x64?&lt;br /&gt;
            ${If} ${RunningX64}&lt;br /&gt;
                ${EnableX64FSRedirection}&lt;br /&gt;
            ${EndIf}&lt;br /&gt;
&lt;br /&gt;
        ${If} ${Errors}&lt;br /&gt;
            ## Error Deleting INI Section&lt;br /&gt;
            StrCpy $0 -1&lt;br /&gt;
            Goto FunctionExit&lt;br /&gt;
        ${EndIf}&lt;br /&gt;
        &lt;br /&gt;
    StrCpy $0 0&lt;br /&gt;
    FunctionExit:&lt;br /&gt;
    &lt;br /&gt;
    ## Restore Registers&lt;br /&gt;
                ; Stack: $2 $1 $0&lt;br /&gt;
        Pop $2  ; Stack: $1 $0&lt;br /&gt;
        Pop $1  ; Stack: $0&lt;br /&gt;
        Exch $0 ; Stack: &amp;lt;ReturnCode&amp;gt;&lt;br /&gt;
FunctionEnd&lt;br /&gt;
&lt;br /&gt;
Function _LGPScript_Remove ; (Mode, Command, Parameters) (ReturnCode)&lt;br /&gt;
    ClearErrors&lt;br /&gt;
    ## Preserve registers&lt;br /&gt;
                    ; Stack: Parameters Command Mode&lt;br /&gt;
        Exch $0     ; Stack: $0 Command Mode&lt;br /&gt;
        Exch 2      ; Stack: Mode Command $0&lt;br /&gt;
        Exch $1     ; Stack: $1 Command $0&lt;br /&gt;
        Exch        ; Stack: Command $1 $0&lt;br /&gt;
        Exch $2     ; Stack: $2 $1 $0&lt;br /&gt;
        ; $0 = Parameters&lt;br /&gt;
        ; $1 = Mode&lt;br /&gt;
        ; $2 = Command&lt;br /&gt;
        &lt;br /&gt;
    ## Search for LGP Script&lt;br /&gt;
        ${LGPScript::_Find} $1 $2 $0 $0&lt;br /&gt;
        &lt;br /&gt;
    ## If Script not found Exit    &lt;br /&gt;
        ${if} $0 == -1&lt;br /&gt;
            ## Script Dosen&amp;#039;t Exist&lt;br /&gt;
            StrCpy $0 -1&lt;br /&gt;
            Goto FunctionExit&lt;br /&gt;
        ${endif}&lt;br /&gt;
        &lt;br /&gt;
     ## Remove LGP Script&lt;br /&gt;
        ${registry::DeleteKey} &amp;quot;HKLM\$0&amp;quot; $2&lt;br /&gt;
        ${if} $2 == -1&lt;br /&gt;
            ## Script Dosen&amp;#039;t Exist&lt;br /&gt;
            StrCpy $0 -1&lt;br /&gt;
            Goto FunctionExit&lt;br /&gt;
        ${endif}&lt;br /&gt;
        &lt;br /&gt;
     ## Reindex Registry Keys&lt;br /&gt;
         ${LGPScript::_ReindexLGP} $1 $2&lt;br /&gt;
         &lt;br /&gt;
    ## ReWrite Values to INI File&lt;br /&gt;
        ${LGPScript::_SaveToINI} $1&lt;br /&gt;
        &lt;br /&gt;
     StrCpy $0 0&lt;br /&gt;
     FunctionExit:&lt;br /&gt;
     ## Restore Registers&lt;br /&gt;
        ; Stack: $2 $1 $0&lt;br /&gt;
        Pop $2  ; Stack: $1 $0&lt;br /&gt;
        Pop $1  ; Stack: $0&lt;br /&gt;
        Exch $0 ; Stack: &amp;lt;ReturnCode&amp;gt;&lt;br /&gt;
FunctionEnd&lt;br /&gt;
&lt;br /&gt;
Function _LGPScript_ReindexLGP ;(Mode) (ReturnCode)&lt;br /&gt;
    ClearErrors&lt;br /&gt;
    ## Preserve registers&lt;br /&gt;
                    ; Stack: &amp;lt;Mode&amp;gt;&lt;br /&gt;
        Exch $0     ; Stack: $0&lt;br /&gt;
        Push $1     ; Stack: $1 $0&lt;br /&gt;
        Push $2     ; Stack: $2 $1 $0&lt;br /&gt;
        Push $3     ; Stack: $3 $2 $1 $0&lt;br /&gt;
        Push $4     ; Stack: $4 $3 $2 $1 $0&lt;br /&gt;
        Push $5     ; Stack: $5 $4 $3 $2 $1 $0&lt;br /&gt;
        Push $6     ; Stack: $6 $4 $3 $2 $1 $0&lt;br /&gt;
        ;$0 = Mode&lt;br /&gt;
    &lt;br /&gt;
    ## Get LGP Path&lt;br /&gt;
        ${LGPScript::_GetLGPRegPath} $0 $0&lt;br /&gt;
    &lt;br /&gt;
    ## Init&lt;br /&gt;
        StrLen $1 &amp;quot;$0&amp;quot;&lt;br /&gt;
        StrCpy $2 -1&lt;br /&gt;
        ${registry::Open} &amp;quot;HKLM\$0&amp;quot; &amp;quot;/K=0 /V=1 /S=0 /G=1 /T=REG_SZ /B=1 /N=Script&amp;quot; $3&lt;br /&gt;
    &lt;br /&gt;
    ## Use search and counter to identify ordering&lt;br /&gt;
        ${do}&lt;br /&gt;
            IntOp $2 $2 + 1&lt;br /&gt;
&lt;br /&gt;
            ${registry::Find} &amp;quot;$3&amp;quot; $4 $5 $5 $6&lt;br /&gt;
            &lt;br /&gt;
            ${if} $6 == &amp;quot;&amp;quot;&lt;br /&gt;
                ${ExitDo}&lt;br /&gt;
            ${endif}&lt;br /&gt;
&lt;br /&gt;
            ## Determine the StringOffset of the Index Key&lt;br /&gt;
                StrLen $5 $4&lt;br /&gt;
                IntOp $5 $1 - $5&lt;br /&gt;
                IntOp $5 $5 + 1&lt;br /&gt;
            &lt;br /&gt;
            ## Get Index Key&lt;br /&gt;
                StrCpy $6 $4 &amp;quot;&amp;quot; $5&lt;br /&gt;
            &lt;br /&gt;
            ;DetailPrint &amp;quot;Counter=$2&amp;quot;&lt;br /&gt;
            ;DetailPrint &amp;quot;Index=$6&amp;quot;&lt;br /&gt;
            ## Test&lt;br /&gt;
                ${If} $6 == $2&lt;br /&gt;
                    ${Continue}&lt;br /&gt;
                ${EndIf}&lt;br /&gt;
                &lt;br /&gt;
            ;DetailPrint &amp;quot;Counter&amp;lt;&amp;gt;Index&amp;quot;&lt;br /&gt;
                        &lt;br /&gt;
            ## Out Of Order&lt;br /&gt;
                ${registry::MoveKey} &amp;quot;HKLM\$4&amp;quot; &amp;quot;HKLM\$0\$2&amp;quot; $5&lt;br /&gt;
            ;DetailPrint &amp;quot;Source=HKLM\$4&amp;quot;&lt;br /&gt;
            ;DetailPrint &amp;quot;Destin=HKLM\$0\$2&amp;quot;&lt;br /&gt;
            ;DetailPrint &amp;quot;Result=$5&amp;quot;&lt;br /&gt;
                ${If} $5 == -1&lt;br /&gt;
                    StrCpy $0 -1&lt;br /&gt;
                    Goto FunctionExit&lt;br /&gt;
                ${EndIf}        &lt;br /&gt;
        ${loop}&lt;br /&gt;
        &lt;br /&gt;
    StrCpy $0 0&lt;br /&gt;
    FunctionExit:&lt;br /&gt;
    ${registry::Close} &amp;quot;$3&amp;quot;&lt;br /&gt;
    ClearErrors&lt;br /&gt;
    ## Restore Registers&lt;br /&gt;
                ; Stack: $6 $5 $4 $3 $2 $1 $0&lt;br /&gt;
        Pop $6  ; Stack: $5 $4 $3 $2 $1 $0&lt;br /&gt;
        Pop $5  ; Stack: $4 $3 $2 $1 $0&lt;br /&gt;
        Pop $4  ; Stack: $3 $2 $1 $0&lt;br /&gt;
        Pop $3  ; Stack: $2 $1 $0&lt;br /&gt;
        Pop $2  ; Stack: $1 $0&lt;br /&gt;
        Pop $1  ; Stack: $0&lt;br /&gt;
        Exch $0 ; Stack: &amp;lt;ReturnCode&amp;gt;&lt;br /&gt;
FunctionEnd&lt;br /&gt;
&lt;br /&gt;
Function _LGPScript_SaveToINI ;(Mode)&lt;br /&gt;
    ClearErrors&lt;br /&gt;
    ## Preserve Registers&lt;br /&gt;
                    ; Stack: &amp;lt;Mode&amp;gt;&lt;br /&gt;
        Exch $0     ; Stack: $0&lt;br /&gt;
        Push $1     ; Stack: $1 $0&lt;br /&gt;
        Push $2     ; Stack: $2 $1 $0&lt;br /&gt;
        Push $3     ; Stack: $3 $2 $1 $0&lt;br /&gt;
        Push $4     ; Stack: $4 $3 $2 $1 $0&lt;br /&gt;
        Push $5     ; Stack: $5 $4 $3 $2 $1 $0&lt;br /&gt;
        Push $R1    ; Stack: $R1 $5 $4 $3 $2 $1 $0&lt;br /&gt;
        Push $R2    ; Stack: $R2 $R1 $5 $4 $3 $2 $1 $0&lt;br /&gt;
        Push $R3    ; Stack: $R3 $R2 $R1 $5 $4 $3 $2 $1 $0&lt;br /&gt;
        Push $R4    ; Stack: $R4 $R3 $R2 $R1 $5 $4 $3 $2 $1 $0&lt;br /&gt;
        ;$0 = Mode&lt;br /&gt;
        &lt;br /&gt;
    ## Windows x64?&lt;br /&gt;
        ${If} ${RunningX64}&lt;br /&gt;
            ${DisableX64FSRedirection}&lt;br /&gt;
        ${EndIf}&lt;br /&gt;
        &lt;br /&gt;
    ## Delete INI Section for Rewrite&lt;br /&gt;
        DeleteINISec &amp;quot;${_LGPScript_INIFILE}&amp;quot; &amp;quot;$0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    ## Windows x64?&lt;br /&gt;
        ${If} ${RunningX64}&lt;br /&gt;
            ${EnableX64FSRedirection}&lt;br /&gt;
        ${EndIf}&lt;br /&gt;
&lt;br /&gt;
    ## Get LGP Path&lt;br /&gt;
        ${LGPScript::_GetLGPRegPath} $0 $1&lt;br /&gt;
    &lt;br /&gt;
    ## Loop Registry and save values to INI   &lt;br /&gt;
        StrLen $2 &amp;quot;$1&amp;quot;&lt;br /&gt;
        ${registry::Open} &amp;quot;HKLM\$1&amp;quot; &amp;quot;/K=0 /V=1 /S=0 /G=1 /T=REG_SZ /B=1 /N=Script&amp;quot; $3&lt;br /&gt;
        &lt;br /&gt;
        ${Do}&lt;br /&gt;
        &lt;br /&gt;
            ${registry::Find} &amp;quot;$3&amp;quot; $R1 $R2 $R3 $R4&lt;br /&gt;
            &lt;br /&gt;
            ${if} $R4 == &amp;quot;&amp;quot;&lt;br /&gt;
                ${ExitDo}&lt;br /&gt;
            ${endif}&lt;br /&gt;
            &lt;br /&gt;
            ## Determine the StringOffset of the Index Key&lt;br /&gt;
                StrLen $4 $R1&lt;br /&gt;
                IntOp $4 $2 - $4&lt;br /&gt;
                IntOp $4 $4 + 1&lt;br /&gt;
            &lt;br /&gt;
            ## Get Index Key&lt;br /&gt;
                StrCpy $R4 $R1 &amp;quot;&amp;quot; $4&lt;br /&gt;
&lt;br /&gt;
            ## Windows x64?&lt;br /&gt;
                ${If} ${RunningX64}&lt;br /&gt;
                    ${DisableX64FSRedirection}&lt;br /&gt;
                ${EndIf}&lt;br /&gt;
&lt;br /&gt;
            WriteINIStr &amp;quot;${_LGPScript_INIFILE}&amp;quot; &amp;quot;$0&amp;quot; &amp;quot;$R4CmdLine&amp;quot; &amp;quot;$R3&amp;quot;&lt;br /&gt;
            &lt;br /&gt;
            ${registry::Read} &amp;quot;HKLM\$R1&amp;quot; &amp;quot;Parameters&amp;quot; $4 $5&lt;br /&gt;
            &lt;br /&gt;
            WriteINIStr &amp;quot;${_LGPScript_INIFILE}&amp;quot; &amp;quot;$0&amp;quot; &amp;quot;$R4Parameters&amp;quot; &amp;quot;$4&amp;quot;&lt;br /&gt;
            &lt;br /&gt;
            ## Windows x64?&lt;br /&gt;
                ${If} ${RunningX64}&lt;br /&gt;
                    ${EnableX64FSRedirection}&lt;br /&gt;
                ${EndIf}&lt;br /&gt;
              &lt;br /&gt;
        ${loop}&lt;br /&gt;
        &lt;br /&gt;
        ${registry::Close} &amp;quot;$3&amp;quot;&lt;br /&gt;
        ClearErrors&lt;br /&gt;
        &lt;br /&gt;
    ## Windows x64?&lt;br /&gt;
        ;${If} ${RunningX64}&lt;br /&gt;
        ;    ${DisableX64FSRedirection}&lt;br /&gt;
        ;${EndIf}&lt;br /&gt;
        &lt;br /&gt;
    ## Restore Registers&lt;br /&gt;
                    ; Stack: $R4 $R3 $R2 $R1 $5 $4 $3 $2 $1 $0&lt;br /&gt;
        Pop $R4     ; Stack: $R3 $R2 $R1 $5 $4 $3 $2 $1 $0&lt;br /&gt;
        Pop $R3     ; Stack: $R2 $R1 $5 $4 $3 $2 $1 $0&lt;br /&gt;
        Pop $R2     ; Stack: $R1 $5 $4 $3 $2 $1 $0&lt;br /&gt;
        Pop $R1     ; Stack: $5 $4 $3 $2 $1 $0&lt;br /&gt;
        Pop $5      ; Stack: $4 $3 $2 $1 $0&lt;br /&gt;
        Pop $4      ; Stack: $3 $2 $1 $0&lt;br /&gt;
        Pop $3      ; Stack: $2 $1 $0&lt;br /&gt;
        Pop $2      ; Stack: $1 $0&lt;br /&gt;
        Pop $1      ; Stack: $0&lt;br /&gt;
        Pop $0      ; Stack: &lt;br /&gt;
        &lt;br /&gt;
FunctionEnd&lt;br /&gt;
&lt;br /&gt;
Function _LGPScript_Create ; (Mode, Command, Parameters) (ReturnCode)&lt;br /&gt;
    ClearErrors&lt;br /&gt;
    ## Preserve registers&lt;br /&gt;
                    ; Stack: Parameters Command Mode&lt;br /&gt;
        Exch $0     ; Stack: $0 Command Mode&lt;br /&gt;
        Exch 2      ; Stack: Mode Command $0&lt;br /&gt;
        Exch $1     ; Stack: $1 Command $0&lt;br /&gt;
        Exch        ; Stack: Command $1 $0&lt;br /&gt;
        Exch $2     ; Stack: $2 $1 $0&lt;br /&gt;
        Push $3     ; Stack: $3 $2 $1 $0&lt;br /&gt;
        Push $4     ; Stack: $4 $3 $2 $1 $0&lt;br /&gt;
        Push $5     ; Stack: $5 $4 $3 $2 $1 $0&lt;br /&gt;
        Push $6     ; Stack: $6 $5 $4 $3 $2 $1 $0&lt;br /&gt;
        ; $0 = Parameters&lt;br /&gt;
        ; $1 = Mode&lt;br /&gt;
        ; $2 = Command&lt;br /&gt;
          &lt;br /&gt;
    ## Verify Script not previously defined&lt;br /&gt;
        ${LGPScript::_Find} $1 $2 $0 $3&lt;br /&gt;
        &lt;br /&gt;
        ${if} $3 != -1&lt;br /&gt;
            ## Previously Defined BreakOut&lt;br /&gt;
              &lt;br /&gt;
            StrCpy $0 1&lt;br /&gt;
            Goto FunctionExit&lt;br /&gt;
        ${endif}&lt;br /&gt;
        &lt;br /&gt;
    ## Get LGP Path&lt;br /&gt;
        ${LGPScript::_GetLGPRegPath} $1 $3&lt;br /&gt;
        &lt;br /&gt;
    ## Get Next Available LGP index&lt;br /&gt;
        ${for} $4 0 1000&lt;br /&gt;
            !warning &amp;quot;Current Local LGP index lookup is based on {registry::KeyExists} and dose not validate against invalid or empty definitions&amp;quot;&lt;br /&gt;
            ${registry::KeyExists} &amp;#039;HKLM\$3\$4&amp;#039; $5&lt;br /&gt;
            ${If} $5 == -1&lt;br /&gt;
                StrCpy $3 &amp;quot;$3\$4&amp;quot;&lt;br /&gt;
                ${ExitFor}&lt;br /&gt;
            ${ElseIf} $4 == 1000&lt;br /&gt;
                ## FAIL: No available index positions detected [Highly unlikly]&lt;br /&gt;
                ;StrCpy $3 &amp;quot;$3\0&amp;quot;&lt;br /&gt;
                StrCpy $0 -1&lt;br /&gt;
                Goto FunctionExit&lt;br /&gt;
            ${EndIf}&lt;br /&gt;
        ${next}&lt;br /&gt;
      &lt;br /&gt;
    ## Write Script Definition into the Registry&lt;br /&gt;
        ${registry::Write} &amp;quot;HKLM\$3&amp;quot; &amp;quot;ExecTime&amp;quot;     &amp;quot;0000000000000000&amp;quot; &amp;quot;REG_QWORD&amp;quot; $4&lt;br /&gt;
&lt;br /&gt;
        ${If} $4 == -1&lt;br /&gt;
            StrCpy $0 -2&lt;br /&gt;
            Goto FunctionExit&lt;br /&gt;
        ${EndIf}&lt;br /&gt;
        &lt;br /&gt;
        ${registry::Write} &amp;quot;HKLM\$3&amp;quot; &amp;quot;Parameters&amp;quot;   `$0` &amp;quot;REG_SZ&amp;quot; $4&lt;br /&gt;
        ${If} $4 == -1&lt;br /&gt;
            StrCpy $0 -2&lt;br /&gt;
            Goto FunctionExit&lt;br /&gt;
        ${EndIf}&lt;br /&gt;
        &lt;br /&gt;
        ${registry::Write} &amp;quot;HKLM\$3&amp;quot; &amp;quot;Script&amp;quot;       `$2` &amp;quot;REG_SZ&amp;quot; $4&lt;br /&gt;
        ${If} $4 == -1&lt;br /&gt;
            StrCpy $0 -2&lt;br /&gt;
            Goto FunctionExit&lt;br /&gt;
        ${EndIf}&lt;br /&gt;
        &lt;br /&gt;
    ## Reindex Registry Keys&lt;br /&gt;
         ${LGPScript::_ReindexLGP} $1 $2&lt;br /&gt;
         &lt;br /&gt;
    ## Write Values to INI File&lt;br /&gt;
        ${LGPScript::_SaveToINI} $1&lt;br /&gt;
        &lt;br /&gt;
    StrCpy $0 0&lt;br /&gt;
    FunctionExit:&lt;br /&gt;
    ## Restore Registers&lt;br /&gt;
                ; Stack: $6 $5 $4 $3 $2 $1 $0&lt;br /&gt;
        Pop $6  ; Stack: $5 $4 $3 $2 $1 $0&lt;br /&gt;
        Pop $5  ; Stack: $4 $3 $2 $1 $0&lt;br /&gt;
        Pop $4  ; Stack: $3 $2 $1 $0&lt;br /&gt;
        Pop $3  ; Stack: $2 $1 $0&lt;br /&gt;
        Pop $2  ; Stack: $1 $0&lt;br /&gt;
        Pop $1  ; Stack: $0&lt;br /&gt;
        Exch $0 ; Stack: &amp;lt;ReturnCode&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
FunctionEnd&lt;br /&gt;
&lt;br /&gt;
Function _LGPScript_Find ; (Mode, Command, Parameters) (RegPath)&lt;br /&gt;
    ClearErrors&lt;br /&gt;
    ## Preserve registers&lt;br /&gt;
                    ; Stack: Parameters Command Mode&lt;br /&gt;
        Exch $0     ; Stack: $0 Command Mode&lt;br /&gt;
        Exch 2      ; Stack: Mode Command $0&lt;br /&gt;
        Exch $1     ; Stack: $1 Command $0&lt;br /&gt;
        Exch        ; Stack: Command $1 $0&lt;br /&gt;
        Exch $2     ; Stack: $2 $1 $0&lt;br /&gt;
        Push $3     ; Stack: $3 $2 $1 $0&lt;br /&gt;
        Push $4     ; Stack: $4 $3 $2 $1 $0&lt;br /&gt;
        Push $5     ; Stack: $5 $4 $3 $2 $1 $0&lt;br /&gt;
        Push $6     ; Stack: $6 $5 $4 $3 $2 $1 $0&lt;br /&gt;
        Push $7     ; Stack: $7 $6 $5 $4 $3 $2 $1 $0&lt;br /&gt;
        Push $8     ; Stack: $8 $7 $6 $5 $4 $3 $2 $1 $0&lt;br /&gt;
        ; $0 = Parameters&lt;br /&gt;
        ; $1 = Mode&lt;br /&gt;
        ; $2 = Command&lt;br /&gt;
        &lt;br /&gt;
    ## Get LGP Path&lt;br /&gt;
        ${LGPScript::_GetLGPRegPath} $1 $3&lt;br /&gt;
        &lt;br /&gt;
    ## Search&lt;br /&gt;
        ${Registry::Open} &amp;quot;HKLM\$3&amp;quot; &amp;quot;/K=0 /V=0 /S=1 /B=1 /N=&amp;#039;$2&amp;#039;&amp;quot; $4&lt;br /&gt;
        ${DoUntil} $4 == 0&lt;br /&gt;
&lt;br /&gt;
            ${Registry::Find} &amp;quot;$4&amp;quot; $5 $6 $7 $8&lt;br /&gt;
            &lt;br /&gt;
            ${if} $5 == &amp;quot;&amp;quot;&lt;br /&gt;
                ${ExitDo}&lt;br /&gt;
            ${endif}&lt;br /&gt;
            &lt;br /&gt;
            ${if} $6 == &amp;quot;Script&amp;quot;&lt;br /&gt;
                ${registry::Read} &amp;quot;HKLM\$5&amp;quot; &amp;quot;Parameters&amp;quot; $6 $7&lt;br /&gt;
                ${if} $6 == $0&lt;br /&gt;
                    StrCpy $0 $5&lt;br /&gt;
                    ${Registry::Close} $4&lt;br /&gt;
                    Goto FunctionExit&lt;br /&gt;
                ${endif}&lt;br /&gt;
            ${endif}&lt;br /&gt;
        ${Loop}&lt;br /&gt;
        ${Registry::Close} $4&lt;br /&gt;
        &lt;br /&gt;
    ## Failed to find it&lt;br /&gt;
        StrCpy $0 -1&lt;br /&gt;
        &lt;br /&gt;
    FunctionExit:&lt;br /&gt;
    ## Restore registers&lt;br /&gt;
                ; Stack: $8 $7 $6 $5 $4 $3 $2 $1 $0&lt;br /&gt;
        Pop $8  ; Stack: $7 $6 $5 $4 $3 $2 $1 $0&lt;br /&gt;
        Pop $7  ; Stack: $6 $5 $4 $3 $2 $1 $0&lt;br /&gt;
        Pop $6  ; Stack: $5 $4 $3 $2 $1 $0&lt;br /&gt;
        Pop $5  ; Stack: $4 $3 $2 $1 $0&lt;br /&gt;
        Pop $4  ; Stack: $3 $2 $1 $0&lt;br /&gt;
        Pop $3  ; Stack: $2 $1 $0&lt;br /&gt;
        Pop $2  ; Stack: $1 $0&lt;br /&gt;
        Pop $1  ; Stack: $0&lt;br /&gt;
        Exch $0 ; Stack: &amp;lt;RegPath / RC&amp;gt;&lt;br /&gt;
FunctionEnd&lt;br /&gt;
&lt;br /&gt;
Function _LGPScript_CreateLGP ; LGPRegPath (ReturnCode)&lt;br /&gt;
    ClearErrors&lt;br /&gt;
    ## Preserve registers&lt;br /&gt;
                    ; Stack: &amp;lt;LGPRegPath&amp;gt;&lt;br /&gt;
        Exch $0     ; Stack: $0&lt;br /&gt;
        Push $1     ; Stack: $1 $0&lt;br /&gt;
&lt;br /&gt;
    ## If we are running on a Windows x64 system we need to dispable file redirection to ensure we get the correct System32 Path&lt;br /&gt;
        ${If} ${RunningX64}&lt;br /&gt;
            ${DisableX64FSRedirection}&lt;br /&gt;
        ${EndIf}&lt;br /&gt;
&lt;br /&gt;
    ## Write Standard Template to Registry&lt;br /&gt;
        ${registry::Write} &amp;quot;HKLM\$0&amp;quot; &amp;quot;FileSysPath&amp;quot;  &amp;quot;$SYSDIR\GroupPolicy\Machine&amp;quot;   &amp;quot;REG_SZ&amp;quot; $1&lt;br /&gt;
        ${registry::Write} &amp;quot;HKLM\$0&amp;quot; &amp;quot;DisplayName&amp;quot;  &amp;quot;Local Group Policy&amp;quot;            &amp;quot;REG_SZ&amp;quot; $1&lt;br /&gt;
        ${registry::Write} &amp;quot;HKLM\$0&amp;quot; &amp;quot;GPO-ID&amp;quot;       &amp;quot;LocalGPO&amp;quot;                      &amp;quot;REG_SZ&amp;quot; $1&lt;br /&gt;
        ${registry::Write} &amp;quot;HKLM\$0&amp;quot; &amp;quot;GPOName&amp;quot;      &amp;quot;Local Group Policy&amp;quot;            &amp;quot;REG_SZ&amp;quot; $1&lt;br /&gt;
        ${registry::Write} &amp;quot;HKLM\$0&amp;quot; &amp;quot;SOM-ID&amp;quot;       &amp;quot;Local&amp;quot;                         &amp;quot;REG_SZ&amp;quot; $1&lt;br /&gt;
        &lt;br /&gt;
        ${If} ${RunningX64}&lt;br /&gt;
            ${EnableX64FSRedirection}&lt;br /&gt;
        ${EndIf}&lt;br /&gt;
        &lt;br /&gt;
    ## Check for Errors&lt;br /&gt;
        ${If} ${Errors}&lt;br /&gt;
            StrCpy $0 -1&lt;br /&gt;
        ${else}&lt;br /&gt;
            StrCpy $0 0&lt;br /&gt;
        ${EndIf}&lt;br /&gt;
        &lt;br /&gt;
    ## Restore registers&lt;br /&gt;
                    ; Stack: $1 $0&lt;br /&gt;
        Pop $1      ; Stack: $0&lt;br /&gt;
        Exch $0     ; Stack: RetuenCode&lt;br /&gt;
FunctionEnd&lt;br /&gt;
&lt;br /&gt;
Function _LGPScript_GetLGPRegPath ;(Mode) (RegPath)&lt;br /&gt;
    ClearErrors&lt;br /&gt;
    ## Preserve registers&lt;br /&gt;
                    ; Stack: &amp;lt;Mode&amp;gt;&lt;br /&gt;
        Exch $0     ; Stack: $0&lt;br /&gt;
        Push $1     ; Stack: $1 $0&lt;br /&gt;
        Push $2     ; Stack: $2 $1 $0&lt;br /&gt;
        Push $3     ; Stack: $3 $2 $1 $0&lt;br /&gt;
        Push $4     ; Stack: $4 $3 $2 $1 $0&lt;br /&gt;
        Push $5     ; Stack: $5 $4 $3 $2 $1 $0&lt;br /&gt;
        ;$0 = Mode&lt;br /&gt;
    &lt;br /&gt;
    ## Windows x64 Check&lt;br /&gt;
        ;${If} ${RunningX64}&lt;br /&gt;
        ;    SetRegView 64&lt;br /&gt;
        ;${EndIf}&lt;br /&gt;
    &lt;br /&gt;
    ## Quickly Test to see if any Startup Scripts are defined&lt;br /&gt;
        ${registry::KeyExists} &amp;#039;HKLM\${_LGPScript_REGPATH}\$0&amp;#039; $1&lt;br /&gt;
        &lt;br /&gt;
        ${If} $1 == -1&lt;br /&gt;
            ## It appears as the LocalGPO is not defined.&lt;br /&gt;
            &lt;br /&gt;
            StrCpy $0 &amp;#039;${_LGPScript_REGPATH}\$0\0&amp;#039;&lt;br /&gt;
            &lt;br /&gt;
            ${LGPScript::_CreateLGP} $0 $1&lt;br /&gt;
&lt;br /&gt;
            ${if} $1 == -1&lt;br /&gt;
                StrCpy $0 -1&lt;br /&gt;
            ${endif}&lt;br /&gt;
            Goto FunctionExit&lt;br /&gt;
        ${EndIf}&lt;br /&gt;
        &lt;br /&gt;
    ## Search for Local LGP&lt;br /&gt;
        ${Registry::Open} &amp;quot;HKLM\${_LGPScript_REGPATH}\$0&amp;quot; &amp;quot;/K=0 /V=0 /S=1 /B=1 /N=&amp;#039;LocalGPO&amp;#039;&amp;quot; $1&lt;br /&gt;
        ${DoUntil} $1 == 0&lt;br /&gt;
&lt;br /&gt;
            ${Registry::Find} &amp;quot;$1&amp;quot; $2 $3 $4 $5&lt;br /&gt;
            &lt;br /&gt;
            ${if} $5 == &amp;quot;&amp;quot;&lt;br /&gt;
                ${ExitDo}&lt;br /&gt;
            ${endif}&lt;br /&gt;
            &lt;br /&gt;
            ${if} $3 == &amp;quot;GPO-ID&amp;quot;&lt;br /&gt;
                StrCpy $0 $2&lt;br /&gt;
                ${Registry::Close} $1&lt;br /&gt;
                Goto FunctionExit&lt;br /&gt;
            ${endif}&lt;br /&gt;
&lt;br /&gt;
        ${Loop}&lt;br /&gt;
        ${Registry::Close} $1&lt;br /&gt;
&lt;br /&gt;
    ## No Local LGP detected, Looks like we need to create one.&lt;br /&gt;
        &lt;br /&gt;
    ## Locate next available LGP index&lt;br /&gt;
        ${for} $1 0 100&lt;br /&gt;
            ${registry::KeyExists} &amp;#039;HKLM\${_LGPScript_REGPATH}\$0\$1&amp;#039; $2&lt;br /&gt;
            &lt;br /&gt;
            ${if} $2 == -1&lt;br /&gt;
            &lt;br /&gt;
                StrCpy $0 &amp;#039;${_LGPScript_REGPATH}\$0\$1&amp;#039;&lt;br /&gt;
                ${LGPScript::_CreateLGP} $0 $1&lt;br /&gt;
&lt;br /&gt;
                Goto FunctionExit&lt;br /&gt;
            ${endif}&lt;br /&gt;
        ${next}&lt;br /&gt;
            &lt;br /&gt;
    ## Epic Fail if here&lt;br /&gt;
        StrCpy $0 -1&lt;br /&gt;
&lt;br /&gt;
    FunctionExit:&lt;br /&gt;
    ## Restore the registers&lt;br /&gt;
                    ; Stack: $5 $4 $3 $2 $1 $0&lt;br /&gt;
        Pop $5      ; Stack: $4 $3 $2 $1 $0&lt;br /&gt;
        Pop $4      ; Stack: $3 $2 $1 $0&lt;br /&gt;
        Pop $3      ; Stack: $2 $1 $0&lt;br /&gt;
        Pop $2      ; Stack: $1 $0&lt;br /&gt;
        Pop $1      ; Stack: $0&lt;br /&gt;
        Exch $0     ; Stack: &amp;lt;RegPath&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        ;${If} ${RunningX64}&lt;br /&gt;
        ;    SetRegView lastused&lt;br /&gt;
        ;${EndIf}&lt;br /&gt;
FunctionEnd&lt;br /&gt;
&lt;br /&gt;
!endif # ___LGPSCRIPT__NSH___&lt;br /&gt;
&amp;lt;/highlight-nsis&amp;gt;&lt;/div&gt;</summary>
		<author><name>Zinthose</name></author>
	</entry>
</feed>