; Inno Setup Skript fuer NetClip (erst "python build.py" unter Windows ausfuehren). ; Interaktiv: NetClip-Setup.exe ; Stille Verteilung (GPO, Intune, PDQ, ...): ; NetClip-Setup.exe /VERYSILENT /SUPPRESSMSGBOXES /SERVER=https://clip.example.de /TOKEN=xyz [/SERVERKEY=abc] [/INSECURE=1] ; Die Werte landen in config.default.json im Programmordner und gelten fuer jeden Benutzer beim ersten Start. ; Autostart fuer alle Benutzer wird per HKLM-Run-Key eingerichtet. #define AppVersion "1.0.2" [Setup] AppId={{6C1E8B0B-4E39-4E0C-9C0B-6E1F2C9D5A11} AppName=NetClip AppVersion={#AppVersion} AppPublisher=NetClip DefaultDirName={autopf}\NetClip DefaultGroupName=NetClip OutputDir=..\dist OutputBaseFilename=NetClip-Setup-{#AppVersion} Compression=lzma2 SolidCompression=yes ArchitecturesInstallIn64BitMode=x64compatible PrivilegesRequired=admin SetupIconFile=netclip.ico UninstallDisplayIcon={app}\NetClip.exe CloseApplications=force [Languages] Name: "de"; MessagesFile: "compiler:Languages\German.isl" [Tasks] Name: "autostart"; Description: "NetClip beim Anmelden starten (alle Benutzer)" [Files] Source: "..\dist\NetClip\*"; DestDir: "{app}"; Flags: recursesubdirs ignoreversion [Icons] Name: "{group}\NetClip"; Filename: "{app}\NetClip.exe" Name: "{group}\NetClip deinstallieren"; Filename: "{uninstallexe}" [Registry] Root: HKLM; Subkey: "Software\Microsoft\Windows\CurrentVersion\Run"; ValueType: string; ValueName: "NetClip"; \ ValueData: """{app}\NetClip.exe"" --minimized"; Flags: uninsdeletevalue; Tasks: autostart [Run] Filename: "{app}\NetClip.exe"; Description: "NetClip starten"; Flags: nowait postinstall skipifsilent runasoriginaluser [Code] function JsonEscape(S: String): String; begin StringChangeEx(S, '\', '\\', True); StringChangeEx(S, '"', '\"', True); Result := S; end; procedure CurStepChanged(CurStep: TSetupStep); var Server, Verify: String; begin if CurStep = ssPostInstall then begin Server := ExpandConstant('{param:SERVER|}'); if Server <> '' then begin if ExpandConstant('{param:INSECURE|0}') = '1' then Verify := 'false' else Verify := 'true'; SaveStringToFile(ExpandConstant('{app}\config.default.json'), '{"server": "' + JsonEscape(Server) + '", "token": "' + JsonEscape(ExpandConstant('{param:TOKEN|}')) + '", "server_key": "' + JsonEscape(ExpandConstant('{param:SERVERKEY|}')) + '", "verify_tls": ' + Verify + '}', False); end; end; end;