diff --git a/emxbeta/EMXBeta.iss b/emxbeta/EMXBeta.iss new file mode 100644 index 0000000..3f33c88 --- /dev/null +++ b/emxbeta/EMXBeta.iss @@ -0,0 +1,120 @@ +; ============================================================================ +; EMX Beta Environment Variable Installer +; Sets system environment variable EMX_BETA=TRUE +; ============================================================================ +; +; This installer: +; - Sets system environment variable EMX_BETA=TRUE +; - Registers in Add/Remove Programs for easy uninstall +; - Uninstall removes the EMX_BETA environment variable +; +; Silent Installation: +; EMXBetaSetup_v1.0.exe /VERYSILENT /SUPPRESSMSGBOXES +; +; ============================================================================ + +[Setup] +AppId={{F7A2C8E1-3B4D-4F6A-9E2C-1D8B5A7F3E09}} +AppName=GE Aerospace eMx BETA Configuration +AppVersion=1.0 +AppPublisher=GE Aerospace +DefaultDirName={autopf}\EMXBeta +CreateAppDir=no +PrivilegesRequired=admin +OutputDir=Output +OutputBaseFilename=EMXBetaSetup_v1.0 +SolidCompression=yes +Compression=lzma2 +WizardStyle=modern +SetupIconFile=gea-logo.ico +WizardImageFile=banner.bmp +WizardSmallImageFile=banner-sm.bmp +DisableWelcomePage=no +DisableDirPage=yes +DisableProgramGroupPage=yes +DisableReadyPage=no +DisableFinishedPage=no +Uninstallable=yes +CreateUninstallRegKey=yes + +[Languages] +Name: "english"; MessagesFile: "compiler:Default.isl" + +[Messages] +WelcomeLabel2=This will configure the EMX_BETA system environment variable on your computer.%n%nThis sets:%n%n EMX_BETA = TRUE%n%nClick Next to continue. + +[Registry] +; Set system environment variable EMX_BETA=TRUE +Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: string; ValueName: "EMX_BETA"; ValueData: "TRUE"; Flags: uninsdeletevalue + +[Code] +const + APP_NAME = 'EMX Beta Configuration'; + +function InitializeSetup: Boolean; +begin + Result := True; + + if not IsAdmin then + begin + MsgBox('This installer requires administrator privileges.' + #13#10 + + 'Please right-click and select "Run as administrator".', + mbError, MB_OK); + Result := False; + end; +end; + +// Broadcast WM_SETTINGCHANGE so running processes pick up the new variable +procedure BroadcastEnvironmentChange; +var + ResultCode: Integer; +begin + Exec('cmd.exe', '/c setx EMX_BETA_NOTIFY 1 >nul 2>&1 & reg delete "HKCU\Environment" /v EMX_BETA_NOTIFY /f >nul 2>&1', + '', SW_HIDE, ewWaitUntilTerminated, ResultCode); +end; + +procedure CurStepChanged(CurStep: TSetupStep); +begin + if CurStep = ssPostInstall then + begin + // Broadcast environment change to notify running applications + BroadcastEnvironmentChange; + + if not WizardSilent then + MsgBox('EMX_BETA environment variable has been set to TRUE.' + #13#10 + #13#10 + + 'You may need to restart applications or log off/on for the change to take effect.', + mbInformation, MB_OK); + end; +end; + +procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep); +var + ResultCode: Integer; +begin + if CurUninstallStep = usPostUninstall then + begin + // Registry flag is auto-removed by Inno (uninsdeletevalue) + // Broadcast environment change to notify running applications + Exec('cmd.exe', '/c setx EMX_BETA_NOTIFY 1 >nul 2>&1 & reg delete "HKCU\Environment" /v EMX_BETA_NOTIFY /f >nul 2>&1', + '', SW_HIDE, ewWaitUntilTerminated, ResultCode); + + if not UninstallSilent then + MsgBox('EMX_BETA environment variable has been removed.' + #13#10 + #13#10 + + 'You may need to restart applications or log off/on for the change to take effect.', + mbInformation, MB_OK); + end; +end; + +function UpdateReadyMemo(Space, NewLine, MemoUserInfoInfo, MemoDirInfo, MemoTypeInfo, + MemoComponentsInfo, MemoGroupInfo, MemoTasksInfo: String): String; +begin + Result := 'EMX Beta Configuration' + NewLine + + NewLine + + 'The following system environment variable will be set:' + NewLine + + NewLine + + Space + 'Name: EMX_BETA' + NewLine + + Space + 'Value: TRUE' + NewLine + + NewLine + + 'This variable will be available system-wide after installation.' + NewLine + + 'A restart of applications or logoff/logon may be required.'; +end; diff --git a/emxbeta/banner-sm.bmp b/emxbeta/banner-sm.bmp new file mode 100644 index 0000000..8a3d38f Binary files /dev/null and b/emxbeta/banner-sm.bmp differ diff --git a/emxbeta/banner.bmp b/emxbeta/banner.bmp new file mode 100644 index 0000000..7bf651e Binary files /dev/null and b/emxbeta/banner.bmp differ diff --git a/emxbeta/gea-logo.ico b/emxbeta/gea-logo.ico new file mode 100644 index 0000000..bf07366 Binary files /dev/null and b/emxbeta/gea-logo.ico differ