Index: scripts/setup.iss
===================================================================
diff -u -N -r6b464cfe96c1828308331ff3731db364db830576 -rf84eecda89d8734da9790a2b8d4a54d344e40c46
--- scripts/setup.iss	(.../setup.iss)	(revision 6b464cfe96c1828308331ff3731db364db830576)
+++ scripts/setup.iss	(.../setup.iss)	(revision f84eecda89d8734da9790a2b8d4a54d344e40c46)
@@ -169,6 +169,8 @@
 
 [Run]
 Filename: "{app}\{code:ExpandArch|ExeFilename}"; Flags: nowait postinstall skipifsilent; Description: "{cm:LaunchProgram,{#MyAppName}}"
+Filename: "Reg.exe"; Parameters: "delete ""SOFTWARE\Microsoft\Windows\CurrentVersion\Run"" /v ""Copy Handler"" /f"; Flags: runasoriginaluser;
+Filename: "Reg.exe"; Parameters: "add ""SOFTWARE\Microsoft\Windows\CurrentVersion\Run"" /v ""Copy Handler"" /t REG_SZ /d ""{app}\{code:ExpandArch|ExeFilename}"" /f"; Flags: runasoriginaluser postinstall; Tasks: startatboot
 
 [Registry]
 Root: "HKLM"; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; ValueType: none; ValueName: "Copy Handler"; Flags: deletevalue uninsdeletevalue
@@ -188,6 +190,9 @@
 [ThirdParty]
 CompileLogMethod=append
 
+[UninstallRun]
+Filename: "Reg.exe"; Parameters: "delete ""SOFTWARE\Microsoft\Windows\CurrentVersion\Run"" /v ""Copy Handler"" /f"; Flags: runasoriginaluser;
+
 [Code]
 function ExpandArch(ConstantStr: String): String;
 begin
@@ -206,16 +211,3 @@
 		end;
 	end;
 end;
-
-procedure CurStepChanged(CurStep: TSetupStep);
-var
-  ResultCode: Integer;
-begin
-    if CurStep = ssPostInstall then
-    begin
-        if IsTaskSelected('startatboot') then
-            ExecAsOriginalUser(ExpandConstant('{app}\{code:ExpandArch|ExeFilename}'), '--EnableLaunchAtStartup=1', '', SW_SHOW, ewWaitUntilTerminated, ResultCode)
-        else
-            ExecAsOriginalUser(ExpandConstant('{app}\{code:ExpandArch|ExeFilename}'), '--EnableLaunchAtStartup=0', '', SW_SHOW, ewWaitUntilTerminated, ResultCode)
-    end;
-end;