mirror of
https://github.com/ddeverill/SteamlessController.git
synced 2026-10-22 06:32:20 -05:00
94 lines
4.1 KiB
Plaintext
94 lines
4.1 KiB
Plaintext
; Script generated by the Inno Setup Script Wizard.
|
|
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
|
|
; Non-commercial use only
|
|
|
|
#define MyAppName "SteamlessController"
|
|
#define MyAppVersion "1.8"
|
|
#define ViGEmSetup "ViGEmBus_1.22.0_x64_x86_arm64.exe"
|
|
#define MyAppPublisher "Dylan Deverill"
|
|
#define MyAppURL "https://github.com/ddeverill/SteamlessController"
|
|
#define MyAppExeName "SteamlessController.exe"
|
|
|
|
[Setup]
|
|
; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications.
|
|
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
|
|
AppId={{4E6FF864-969A-44C6-B4AC-848F22D5EF57}
|
|
AppName={#MyAppName}
|
|
AppVersion={#MyAppVersion}
|
|
;AppVerName={#MyAppName} {#MyAppVersion}
|
|
AppPublisher={#MyAppPublisher}
|
|
AppPublisherURL={#MyAppURL}
|
|
AppSupportURL={#MyAppURL}
|
|
AppUpdatesURL={#MyAppURL}
|
|
DefaultDirName={autopf}\{#MyAppName}
|
|
UninstallDisplayIcon={app}\{#MyAppExeName}
|
|
; Setup and Uninstall must not replace/remove the tray app while it is still
|
|
; watching Steam or holding the controller.
|
|
AppMutex=SteamlessController_SingleInstance
|
|
SourceDir=..
|
|
; "ArchitecturesAllowed=x64compatible" specifies that Setup cannot run
|
|
; on anything but x64 and Windows 11 on Arm.
|
|
ArchitecturesAllowed=x64compatible
|
|
; "ArchitecturesInstallIn64BitMode=x64compatible" requests that the
|
|
; install be done in "64-bit mode" on x64 or Windows 11 on Arm,
|
|
; meaning it should use the native 64-bit Program Files directory and
|
|
; the 64-bit view of the registry.
|
|
ArchitecturesInstallIn64BitMode=x64compatible
|
|
DisableProgramGroupPage=yes
|
|
; Uncomment the following line to run in non administrative install mode (install for current user only).
|
|
;PrivilegesRequired=lowest
|
|
OutputBaseFilename=SteamlessController-Setup
|
|
SetupIconFile=resources\SteamControllerON.ico
|
|
SolidCompression=yes
|
|
WizardStyle=modern
|
|
|
|
[Languages]
|
|
Name: "english"; MessagesFile: "compiler:Default.isl"
|
|
|
|
[Tasks]
|
|
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
|
|
|
|
[Files]
|
|
Source: "build\release\Release\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion
|
|
Source: "build\release\Release\SteamlessDeviceCycle.exe"; DestDir: "{app}"; Flags: ignoreversion
|
|
Source: "resources\{#ViGEmSetup}"; DestDir: "{tmp}"; Flags: deleteafterinstall
|
|
|
|
[Icons]
|
|
Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
|
|
Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
|
|
|
|
[Run]
|
|
; ViGEmBus uses MSI-style silent switches; /install is rejected by the 1.22.0 bootstrapper.
|
|
Filename: "{tmp}\{#ViGEmSetup}"; Parameters: "/qn /norestart"; StatusMsg: "Installing ViGEmBus driver..."; Flags: waituntilterminated
|
|
; Register the elevated on-demand device-cycle task while the installer is
|
|
; already elevated, so users never see a UAC prompt from the app itself.
|
|
Filename: "{app}\SteamlessDeviceCycle.exe"; Parameters: "--register"; StatusMsg: "Registering controller helper task..."; Flags: waituntilterminated runhidden
|
|
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
|
|
|
|
[UninstallRun]
|
|
Filename: "{app}\SteamlessDeviceCycle.exe"; Parameters: "--unregister"; RunOnceId: "RemoveCycleTask"; Flags: waituntilterminated runhidden
|
|
|
|
[Code]
|
|
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
|
|
var
|
|
ResultCode: Integer;
|
|
begin
|
|
if CurUninstallStep = usUninstall then
|
|
begin
|
|
{ Restore the user's original Steam blacklist/startup state before the
|
|
executable and its recorded baseline are removed. Abort leaves the app
|
|
installed so cleanup can be retried instead of silently orphaning a
|
|
persistent Steam setting. }
|
|
if (not Exec(ExpandConstant('{app}\{#MyAppExeName}'),
|
|
'--uninstall-cleanup', '', SW_HIDE,
|
|
ewWaitUntilTerminated, ResultCode)) or (ResultCode <> 0) then
|
|
begin
|
|
MsgBox('SteamlessController could not restore Steam''s original controller settings. ' +
|
|
'Steam was restarted with its previous settings; please close Steam and retry uninstall.',
|
|
mbError, MB_OK);
|
|
Abort;
|
|
end;
|
|
end;
|
|
end;
|
|
|