Files
medi-wol/installer/medi-wol-setup.iss

128 lines
4.2 KiB
Plaintext

; 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