Index: scripts/setup.iss =================================================================== diff -u -N -ra27d1acf1bda3c25b6dcce0d0eb0278009ce63ae -r694e362bf3ce049a7bbba8b4cf442d07e6741901 --- scripts/setup.iss (.../setup.iss) (revision a27d1acf1bda3c25b6dcce0d0eb0278009ce63ae) +++ scripts/setup.iss (.../setup.iss) (revision 694e362bf3ce049a7bbba8b4cf442d07e6741901) @@ -123,10 +123,9 @@ Filename: "{app}\{code:ExpandArch|ExeFilename}"; Flags: nowait postinstall skipifsilent; Description: "{cm:LaunchProgram,{#MyAppName}}" [Registry] +Root: "HKLM"; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; ValueType: none; ValueName: "Copy Handler"; Flags: deletevalue uninsdeletevalue +Root: "HKCU"; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; ValueType: none; ValueName: "Copy Handler"; Flags: uninsdeletevalue -Root: HKLM; Subkey: SOFTWARE\Microsoft\Windows\CurrentVersion\Run; ValueType: string; ValueName: Copy Handler; Flags: dontcreatekey deletevalue -Root: HKCU; Subkey: SOFTWARE\Microsoft\Windows\CurrentVersion\Run; ValueType: string; ValueName: Copy Handler; Tasks: startatboot; ValueData: {app}\{code:ExpandArch|ExeFilename}; Flags: uninsdeletevalue - [Dirs] Name: {app}\help; Flags: uninsalwaysuninstall Name: {app}\langs; Flags: uninsalwaysuninstall @@ -160,3 +159,16 @@ 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;