#define MyAppName "IT Nexus Agent" #define MyAppVersion "2.3.0" #define MyAppPublisher "Cereda Systems GmbH" #define MyAppURL "https://it-nexus.cereda-systems.de" #define MyAppExeName "IT-Nexus-Agent.exe" #define MyAppGUID "B3F7A2C1-4E8D-4F2A-9B1C-7D3E5F6A8B2C" [Setup] AppId={{{#MyAppGUID}} AppName={#MyAppName} AppVersion={#MyAppVersion} AppVerName={#MyAppName} {#MyAppVersion} AppPublisher={#MyAppPublisher} AppPublisherURL={#MyAppURL} AppSupportURL={#MyAppURL} AppUpdatesURL={#MyAppURL} DefaultDirName={autopf}\{#MyAppName} DefaultGroupName={#MyAppName} DisableProgramGroupPage=yes DisableWelcomePage=no OutputDir=..\installer OutputBaseFilename=IT-Nexus-Agent-Setup-v{#MyAppVersion} SetupIconFile=icon.ico Compression=lzma2/max SolidCompression=yes WizardStyle=modern WizardResizable=no PrivilegesRequired=admin MinVersion=10.0.17763 ArchitecturesInstallIn64BitMode=x64 UninstallDisplayIcon={app}\{#MyAppExeName} UninstallDisplayName={#MyAppName} {#MyAppVersion} VersionInfoVersion={#MyAppVersion} VersionInfoCompany={#MyAppPublisher} VersionInfoDescription={#MyAppName} CloseApplications=yes CloseApplicationsFilter=IT-Nexus-Agent.exe [Languages] Name: "german"; MessagesFile: "compiler:Languages\German.isl" [Files] Source: "publish\IT-Nexus-Agent.exe"; DestDir: "{app}"; Flags: ignoreversion Source: "icon.ico"; DestDir: "{app}"; Flags: ignoreversion Source: "config.template.json"; DestDir: "{commonappdata}\IT Nexus Agent"; DestName: "config.json"; Flags: onlyifdoesntexist uninsneveruninstall [Icons] ; Kein Start-Menü-Icon und kein Desktop-Icon — Agent läuft unsichtbar im Hintergrund [Registry] ; Kein Autostart-Eintrag — Dashboard wird NICHT automatisch gestartet [Run] Filename: "{app}\{#MyAppExeName}"; Parameters: "--install"; Flags: runhidden waituntilterminated; StatusMsg: "Installiere Windows Service..." [UninstallRun] Filename: "{app}\{#MyAppExeName}"; Parameters: "--uninstall"; Flags: runhidden waituntilterminated [UninstallDelete] Type: files; Name: "{commonappdata}\IT Nexus Agent\status.json" Type: files; Name: "{commonappdata}\IT Nexus Agent\agent.log" [Code] procedure CurStepChanged(CurStep: TSetupStep); var ResultCode: Integer; begin if CurStep = ssInstall then begin // Service stoppen (neue Architektur) Exec('net.exe', 'stop "IT Nexus Agent"', '', SW_HIDE, ewWaitUntilTerminated, ResultCode); // Alte Scheduled Tasks (v1.x PowerShell-Agent) entfernen Exec('schtasks.exe', '/delete /tn "IT Nexus Agent" /f', '', SW_HIDE, ewWaitUntilTerminated, ResultCode); Exec('schtasks.exe', '/delete /tn "IT Nexus Agent Watcher" /f', '', SW_HIDE, ewWaitUntilTerminated, ResultCode); Exec('schtasks.exe', '/delete /tn "ITNexusAgent" /f', '', SW_HIDE, ewWaitUntilTerminated, ResultCode); Exec('schtasks.exe', '/delete /tn "ITNexusAgentWatcher" /f', '', SW_HIDE, ewWaitUntilTerminated, ResultCode); // Autostart-Eintrag aus vorheriger Version entfernen (falls vorhanden) RegDeleteValue(HKCU, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run', 'IT Nexus Agent'); Sleep(2000); end; end;