Clone
ixen <ixen@copyhandler.com>
committed
on 28 Mar 19
Fixed installer to properly register autorun while installing (CH-343)
scripts/setup.iss (+13 -2)
152 152 Source: "..\bin\release\{#LibSerializerFilename32}"; DestDir: "{app}\ShellExt32"; Flags: ignoreversion restartreplace uninsrestartdelete; Check: Is64BitInstallMode
153 153 Source: "..\bin\release\{#LibStringFilename32}"; DestDir: "{app}\ShellExt32"; Flags: ignoreversion restartreplace uninsrestartdelete; Check: Is64BitInstallMode
154 154 Source: "..\bin\release\{#LibLoggerFilename32}"; DestDir: "{app}\ShellExt32"; Flags: ignoreversion restartreplace uninsrestartdelete; Check: Is64BitInstallMode
155 155 Source: "..\bin\release\{#SQLite32}"; DestDir: "{app}\ShellExt32"; Flags: ignoreversion restartreplace uninsrestartdelete; Check: Is64BitInstallMode
156 156 Source: "{#MSRedistDir32}\Microsoft.VC141.CRT\*"; DestDir: "{app}\ShellExt32"; Flags: ignoreversion restartreplace uninsrestartdelete; Check: Is64BitInstallMode
157 157 Source: "{#MSRedistDir32}\Microsoft.VC141.MFC\*"; DestDir: "{app}\ShellExt32"; Flags: ignoreversion restartreplace uninsrestartdelete; Check: Is64BitInstallMode
158 158 Source: "{#UCrtDir32}\*"; DestDir: "{app}\ShellExt32"; Flags: ignoreversion restartreplace uninsrestartdelete; Check: Is64BitInstallMode
159 159 Source: "{#DbgHelp32}\dbghelp.dll"; DestDir: "{app}\ShellExt32"; Flags: ignoreversion restartreplace uninsrestartdelete; Check: Is64BitInstallMode
160 160
161 161 ; NOTE: Don't use "Flags: ignoreversion" on any shared system files
162 162
163 163 [Icons]
164 164 Name: {group}\{#MyAppName}; Filename: {app}\{code:ExpandArch|ExeFilename}; WorkingDir: {app}
165 165 Name: {group}\{cm:TranslateCopyHandler}; Filename: {app}\{code:ExpandArch|ICTranslateFilename}; Parameters: """{app}\langs\english.lng"""; WorkingDir: {app}\lang
166 166 Name: {group}\{cm:UninstallCopyHandler}; Filename: {uninstallexe}; WorkingDir: {app}
167 167 Name: {commondesktop}\{#MyAppName}; Filename: {app}\{code:ExpandArch|ExeFilename}; Tasks: desktopicon; WorkingDir: {app}
168 168 Name: {commonappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}; Filename: {app}\{code:ExpandArch|ExeFilename}; Tasks: quicklaunchicon; WorkingDir: {app}
169 169
170 170 [Run]
171 171 Filename: "{app}\{code:ExpandArch|ExeFilename}"; Flags: nowait postinstall skipifsilent; Description: "{cm:LaunchProgram,{#MyAppName}}"
172   Filename: "Reg.exe"; Parameters: "delete ""HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"" /v ""Copy Handler"" /f"; Flags: runasoriginaluser;
173   Filename: "Reg.exe"; Parameters: "add ""HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"" /v ""Copy Handler"" /t REG_SZ /d ""{app}\{code:ExpandArch|ExeFilename}"" /f"; Flags: runasoriginaluser postinstall; Tasks: startatboot
174 172
175 173 [Registry]
176 174 Root: "HKLM"; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; ValueType: none; ValueName: "Copy Handler"; Flags: deletevalue uninsdeletevalue
177 175
178 176 [Dirs]
179 177 Name: {app}\help; Flags: uninsalwaysuninstall
180 178 Name: {app}\langs; Flags: uninsalwaysuninstall
181 179
182 180 [CustomMessages]
183 181 TranslateCopyHandler=Translate Copy Handler
184 182 polish.TranslateCopyHandler=Przet�umacz program Copy Handler
185 183 UninstallCopyHandler=Uninstall Copy Handler
186 184 polish.UninstallCopyHandler=Odinstaluj program Copy Handler
187 185 StartAtBoot=Run program at system startup
188 186 polish.StartAtBoot=Uruchom program przy starcie systemu
189 187
190 188 [ThirdParty]
191 189 CompileLogMethod=append
192 190
193 191 [Code]
194 192 function ExpandArch(ConstantStr: String): String;
195 193 begin
196 194         if Is64BitInstallMode then
197 195         begin
198 196                 case ConstantStr of
199 197                         'ExeFilename': Result := '{#ExeFilename64}';
200 198                         'ICTranslateFilename': Result := '{#ICTranslateFilename64}';
201 199                 end;
202 200         end
203 201         else
204 202         begin
205 203                 case ConstantStr of
206 204                         'ExeFilename': Result := '{#ExeFilename32}';
207 205                         'ICTranslateFilename': Result := '{#ICTranslateFilename32}';
208 206                 end;
209 207         end;
210 208 end;
  209
  210 procedure CurStepChanged(CurStep: TSetupStep);
  211 var
  212   ResultCode: Integer;
  213 begin
  214     if CurStep = ssPostInstall then
  215     begin
  216         if IsTaskSelected('startatboot') then
  217             ExecAsOriginalUser('Reg.exe', 'add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "Copy Handler" /d "' + ExpandConstant('{app}\{code:ExpandArch|ExeFilename}') + '" /f', '', SW_HIDE, ewWaitUntilTerminated, ResultCode)
  218         else
  219             ExecAsOriginalUser('Reg.exe', 'delete "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "Copy Handler" /f', '', SW_HIDE, ewWaitUntilTerminated, ResultCode)
  220     end;
  221 end;