mirror of
https://github.com/EDCD/EDMarketConnector.git
synced 2025-04-12 15:27:14 +03:00
126 lines
5.2 KiB
Plaintext
126 lines
5.2 KiB
Plaintext
#define MyAppName "EDMarketConnector"
|
|
#define MyAppLongName "Elite Dangerous Market Connector"
|
|
#define MyAppVersion "$appver"
|
|
#define MyAppUpdateTime "$update_time"
|
|
#define MyAppPublisher "EDCD"
|
|
#define MyAppURL "https://edcd.github.io/"
|
|
#define SuppURL "https://github.com/EDCD/EDMarketConnector/"
|
|
#define MyAppExeName "EDMarketConnector.exe"
|
|
|
|
[Setup]
|
|
AppId={{5E9AD4D3-0365-41D5-9586-9368745DD109}
|
|
AppName={#MyAppName}
|
|
AppVersion={#MyAppVersion}
|
|
AppVerName={#MyAppName} {#MyAppVersion}
|
|
AppPublisher={#MyAppPublisher}
|
|
AppPublisherURL={#MyAppURL}
|
|
AppSupportURL={#SuppURL}
|
|
AppUpdatesURL={#SuppURL}
|
|
AppCopyright=Copyright (C) 2015-2019 Jonathan Harris, 2020-2024 EDCD
|
|
AllowUNCPath=no
|
|
AllowNetworkDrive=no
|
|
DefaultDirName={autopf}\{#MyAppName}
|
|
DisableProgramGroupPage=yes
|
|
DirExistsWarning=yes
|
|
AllowNoIcons=yes
|
|
OutputBaseFilename=EDMarketConnector_Installer_{#MyAppVersion}
|
|
SetupIconFile=dist.win32\EDMarketConnector.ico
|
|
Compression=lzma2/max
|
|
SolidCompression=yes
|
|
WizardStyle=modern
|
|
InfoBeforeFile=dist.win32\Changelog.md
|
|
OutputDir=.
|
|
LicenseFile=LICENSE
|
|
AlwaysShowDirOnReadyPage=yes
|
|
UninstallDisplayIcon={app}\{#MyAppExeName}
|
|
MinVersion=6.2
|
|
ChangesAssociations = yes
|
|
UsedUserAreasWarning = no
|
|
|
|
[Languages]
|
|
Name: "english"; MessagesFile: "compiler:Default.isl"
|
|
|
|
[Tasks]
|
|
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
|
|
|
|
[Files]
|
|
Source: "dist.win32\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion
|
|
Source: "dist.win32\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
|
|
|
|
[Icons]
|
|
Name: "{autoprograms}\{#MyAppLongName}"; Filename: "{app}\{#MyAppExeName}"; Comment: "EDMC";
|
|
Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon;
|
|
|
|
[Run]
|
|
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
|
|
|
|
;Check if a WiX-based installation exists. If so, kill it with fire.
|
|
[Code]
|
|
function EndsWith(SubText, Text: AnsiString): Boolean;
|
|
var
|
|
EndStr: string;
|
|
begin
|
|
Log('Starting');
|
|
EndStr := Copy(Text, Length(Text) - Length(SubText) + 1, Length(SubText));
|
|
Log(EndStr);
|
|
{ Use SameStr, if you need a case-sensitive comparison }
|
|
Result := SameText(SubText, EndStr);
|
|
end;
|
|
|
|
// EDMC didn't keep a consistant GUID during previous history. Due to that, we have to do this tomfoolery.
|
|
procedure CurStepChanged(CurStep: TSetupStep);
|
|
var
|
|
ResultCode: Integer;
|
|
Uninstall: String;
|
|
OldWiX: Boolean;
|
|
S: AnsiString;
|
|
PowerShellOutputFile: String;
|
|
begin
|
|
if (CurStep = ssInstall) then
|
|
begin
|
|
PowerShellOutputFile := ExpandConstant('{tmp}\PowershellOutput.txt');
|
|
// Construct the PowerShell command and capture output to a file
|
|
Exec('powershell.exe', '-NoProfile -Command "Get-WmiObject -Class Win32_Product | where Name -eq ''Elite Dangerous Market Connector'' | select-object -expandproperty IdentifyingNumber" | Out-File -Encoding ASCII "' + PowerShellOutputFile + '"', '', SW_HIDE, ewWaitUntilTerminated, ResultCode);
|
|
begin
|
|
if LoadStringFromFile(PowerShellOutputFile, S) then
|
|
S:= Trim(S);
|
|
Log(S);
|
|
begin
|
|
OldWiX:=EndsWith('}', S);
|
|
if (OldWiX = True) then
|
|
begin
|
|
MsgBox('Warning: an old version of EDMC is installed! Please close EDMC while we remove the old version!', mbInformation, MB_OK);
|
|
Uninstall := '/x ' + S;
|
|
Exec('MsiExec.exe', Uninstall, '', SW_SHOW, ewWaitUntilTerminated, ResultCode);
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
[Registry]
|
|
; Create the main registry key under HKCR
|
|
Root: HKCR; Subkey: "edmc"; Flags: uninsdeletekey
|
|
; Create a default value under the "edmc" key
|
|
Root: HKCR; Subkey: "edmc"; ValueType: string; ValueName: ""; ValueData: "{#MyAppName}"; Flags: uninsdeletekey
|
|
; Create the "URL Protocol" value under the "edmc" key
|
|
Root: HKCR; Subkey: "edmc"; ValueType: string; ValueName: "URL Protocol"; ValueData: ""; Flags: uninsdeletekey
|
|
; Create the "DefaultIcon" subkey under the "edmc" key
|
|
Root: HKCR; Subkey: "edmc\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\EDMarketConnector.exe,0"; Flags: uninsdeletekey
|
|
; Create the "shell" subkey under the "edmc" key
|
|
Root: HKCR; Subkey: "edmc\shell"; Flags: uninsdeletekey
|
|
; Create the "open" subkey under the "shell" subkey
|
|
Root: HKCR; Subkey: "edmc\shell\open"; Flags: uninsdeletekey
|
|
; Create the "command" subkey under the "open" subkey
|
|
Root: HKCR; Subkey: "edmc\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\EDMarketConnector.exe"" ""%1"""; Flags: uninsdeletekey
|
|
; Create the "ddeexec" subkey under the "open" subkey
|
|
Root: HKCR; Subkey: "edmc\shell\open\ddeexec"; ValueType: string; ValueName: ""; ValueData: "Open(""%1"")"; Flags: uninsdeletekey
|
|
; Create WinSparkle related keys for update values
|
|
Root: HKCU; Subkey: "Software\EDCD\EDMarketConnector"; Flags: uninsdeletekey
|
|
Root: HKCU; Subkey: "Software\EDCD\EDMarketConnector\WinSparkle"; Flags: uninsdeletekey
|
|
Root: HKCU; Subkey: "Software\EDCD\EDMarketConnector\WinSparkle"; ValueType: string; ValueName: "UpdateInterval"; ValueData: "{#MyAppUpdateTime}"; Flags: createvalueifdoesntexist
|
|
Root: HKCU; Subkey: "Software\EDCD\EDMarketConnector\WinSparkle"; ValueType: string; ValueName: "CheckForUpdates"; ValueData: "1"; Flags: createvalueifdoesntexist
|
|
|
|
[InstallDelete]
|
|
Type: filesandordirs; Name: "{app}"
|