mirror of
https://github.com/EDCD/EDMarketConnector.git
synced 2025-04-13 07:47:14 +03:00
EDMC didn't have an icon, and everyone deserves to have their own special thing. Thanks to CMDR DrebinOmega for the design!
126 lines
5.3 KiB
Plaintext
126 lines
5.3 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 -ExecutionPolicy Bypass -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}"
|