; Medi-WOL Windows Installer Script ; Erstellt mit Inno Setup 6 #define MyAppName "Medi-WOL" #define MyAppVersion "1.0.0" #define MyAppPublisher "medisoftware" #define MyAppExeName "medi-wol-windows-amd64.exe" #define MyAppServiceName "Medi-WOL" #define MyAppServiceDisplayName "Medi-WOL Wake-on-LAN Manager" #define MyAppServiceDescription "Web-basierter Wake-on-LAN Manager für PC-Verwaltung" [Setup] AppId={{A1B2C3D4-E5F6-7890-ABCD-EF1234567890} AppName={#MyAppName} AppVersion={#MyAppVersion} AppPublisher={#MyAppPublisher} AppPublisherURL=https://www.medisoftware.de/ DefaultDirName={autopf}\{#MyAppName} DefaultGroupName={#MyAppName} AllowNoIcons=yes LicenseFile=..\LICENSE OutputDir=..\dist OutputBaseFilename=medi-wol-setup Compression=lzma SolidCompression=yes WizardStyle=modern PrivilegesRequired=admin ArchitecturesAllowed=x64 ArchitecturesInstallIn64BitMode=x64 [Languages] Name: "german"; MessagesFile: "compiler:Languages\German.isl" Name: "english"; MessagesFile: "compiler:Default.isl" [Tasks] Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 6.1; Check: not IsAdminInstallMode [Files] Source: "..\dist\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion Source: "..\web\static\*"; DestDir: "{app}\web\static"; Flags: ignoreversion recursesubdirs createallsubdirs Source: "..\web\templates\*"; DestDir: "{app}\web\templates"; Flags: ignoreversion recursesubdirs createallsubdirs Source: "..\LICENSE"; DestDir: "{app}"; Flags: ignoreversion Source: "..\README.md"; DestDir: "{app}"; Flags: ignoreversion [Icons] Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}" Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}" Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: quicklaunchicon [Run] ; Dienst installieren und starten Filename: "{app}\{#MyAppExeName}"; Parameters: "install -port {code:GetPort}"; StatusMsg: "Installiere Medi-WOL Dienst..."; Flags: runhidden Filename: "net.exe"; Parameters: "start {#MyAppServiceName}"; StatusMsg: "Starte Medi-WOL Dienst..."; Flags: runhidden [UninstallRun] ; Dienst stoppen und entfernen Filename: "net.exe"; Parameters: "stop {#MyAppServiceName}"; Flags: runhidden Filename: "{app}\{#MyAppExeName}"; Parameters: "uninstall"; Flags: runhidden [Code] var PortPage: TInputQueryWizardPage; PortEdit: TEdit; procedure InitializeWizard; begin PortPage := CreateInputQueryPage(wpWelcome, 'Port-Konfiguration', 'Auf welchem Port soll Medi-WOL laufen?', 'Bitte geben Sie den Port für den Medi-WOL Web-Server ein:'); PortPage.Add('Port:', False); PortEdit := PortPage.Values[0]; PortEdit.Text := '9000'; end; function GetPort(Param: String): String; begin Result := PortEdit.Text; end; function NextButtonClick(CurPageID: Integer): Boolean; var PortStr: String; i: Integer; Port: Integer; begin Result := True; if CurPageID = PortPage.ID then begin PortStr := PortEdit.Text; // Prüfe ob nur Zahlen eingegeben wurden for i := 1 to Length(PortStr) do begin if (PortStr[i] < '0') or (PortStr[i] > '9') then begin MsgBox('Bitte geben Sie nur Zahlen ein.', mbError, MB_OK); Result := False; Exit; end; end; // Konvertiere zu Integer Port := StrToIntDef(PortStr, 0); if (Port < 1) or (Port > 65535) then begin MsgBox('Port muss zwischen 1 und 65535 liegen.', mbError, MB_OK); Result := False; Exit; end; end; end; [Registry] ; Umgebungsvariablen für den Dienst setzen Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Services\{#MyAppServiceName}"; ValueType: string; ValueName: "Environment"; ValueData: "PORT={code:GetPort}"; Flags: createvalueifdoesntexist [CustomMessages] german.CreateDesktopIcon=Desktop-Verknüpfung erstellen german.CreateQuickLaunchIcon=Quick Launch-Verknüpfung erstellen german.AdditionalIcons=Zusätzliche Verknüpfungen: german.UninstallProgram=Medi-WOL entfernen