132 lines
5.1 KiB
Plaintext
132 lines
5.1 KiB
Plaintext
#define MyAppName "AZA Desktop"
|
|
#ifndef MyAppVersion
|
|
#define MyAppVersion "0.1.0"
|
|
#endif
|
|
#define MyAppPublisher "AZA MedWork"
|
|
#define MyAppExeName "aza_desktop.exe"
|
|
#define MyAppSourceDir SourcePath + "\..\dist\aza_desktop"
|
|
|
|
[Setup]
|
|
AppId={{B7E4C0D2-6B5D-4D39-9D7C-5B0D5E8C2A11}
|
|
AppName={#MyAppName}
|
|
AppVersion={#MyAppVersion}
|
|
AppPublisher={#MyAppPublisher}
|
|
AppPublisherURL=https://aza-medwork.ch
|
|
DefaultDirName={autopf}\AZA Desktop
|
|
DefaultGroupName=AZA Desktop
|
|
DisableProgramGroupPage=yes
|
|
OutputDir={#MyAppSourceDir}\..\..\dist\installer
|
|
OutputBaseFilename=aza_desktop_setup
|
|
Compression=lzma
|
|
SolidCompression=yes
|
|
WizardStyle=modern
|
|
PrivilegesRequired=admin
|
|
ArchitecturesInstallIn64BitMode=x64
|
|
UninstallDisplayIcon={app}\{#MyAppExeName}
|
|
SetupIconFile={#MyAppSourceDir}\..\..\logo.ico
|
|
SetupMutex=AZADesktopSetupMutex
|
|
CloseApplications=no
|
|
RestartApplications=no
|
|
|
|
[Languages]
|
|
Name: "german"; MessagesFile: "compiler:Languages\German.isl"
|
|
|
|
[Tasks]
|
|
Name: "desktopicon"; Description: "Desktop-Verknuepfung erstellen"; GroupDescription: "Zusaetzliche Aufgaben:"
|
|
|
|
[Dirs]
|
|
Name: "{app}\config"; Permissions: users-modify
|
|
|
|
[InstallDelete]
|
|
Type: filesandordirs; Name: "{app}\_internal\*.pyd"
|
|
Type: filesandordirs; Name: "{app}\_internal\*.dll"
|
|
Type: files; Name: "{app}\_internal\*.tmp"
|
|
|
|
[Files]
|
|
Source: "{#MyAppSourceDir}\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion restartreplace uninsrestartdelete
|
|
Source: "{#MyAppSourceDir}\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs restartreplace; Excludes: "config\aza_runtime.env,{#MyAppExeName}"
|
|
Source: "{#MyAppSourceDir}\_internal\backend_url.txt"; DestDir: "{app}"; Flags: ignoreversion skipifsourcedoesntexist
|
|
Source: "{#MyAppSourceDir}\_internal\backend_token.txt"; DestDir: "{app}"; Flags: ignoreversion skipifsourcedoesntexist
|
|
Source: "{#MyAppSourceDir}\..\..\setup_openai_runtime.ps1"; DestDir: "{app}"; Flags: ignoreversion
|
|
Source: "{#MyAppSourceDir}\..\..\logo.ico"; DestDir: "{app}"; Flags: ignoreversion
|
|
|
|
[Icons]
|
|
Name: "{group}\AZA Desktop"; Filename: "{app}\{#MyAppExeName}"; IconFilename: "{app}\logo.ico"
|
|
Name: "{autodesktop}\AZA Desktop"; Filename: "{app}\{#MyAppExeName}"; IconFilename: "{app}\logo.ico"; Tasks: desktopicon
|
|
Name: "{group}\AZA - OpenAI Schluessel einrichten"; Filename: "powershell.exe"; Parameters: "-ExecutionPolicy Bypass -File ""{app}\setup_openai_runtime.ps1"""
|
|
|
|
[Run]
|
|
Filename: "{app}\{#MyAppExeName}"; Description: "AZA Desktop starten"; Flags: nowait postinstall skipifsilent
|
|
|
|
[UninstallRun]
|
|
Filename: "netsh.exe"; Parameters: "advfirewall firewall delete rule name=""AZA Desktop - Lokale Kommunikation"""; Flags: runhidden; RunOnceId: "DelFirewallRule"
|
|
|
|
[Code]
|
|
function InitializeSetup(): Boolean;
|
|
var
|
|
R: Integer;
|
|
begin
|
|
Result := True;
|
|
Exec('taskkill.exe', '/F /IM aza_desktop.exe', '', SW_HIDE, ewWaitUntilTerminated, R);
|
|
Sleep(500);
|
|
end;
|
|
|
|
function PrepareToInstall(var NeedsRestart: Boolean): String;
|
|
var
|
|
R: Integer;
|
|
begin
|
|
Result := '';
|
|
Exec('taskkill.exe', '/F /IM aza_desktop.exe', '', SW_HIDE, ewWaitUntilTerminated, R);
|
|
Sleep(500);
|
|
end;
|
|
|
|
procedure CurStepChanged(CurStep: TSetupStep);
|
|
var
|
|
R: Integer;
|
|
AppPath, ExePath, Cmd: String;
|
|
begin
|
|
if CurStep = ssPostInstall then
|
|
begin
|
|
AppPath := ExpandConstant('{app}');
|
|
ExePath := AddBackslash(AppPath) + 'aza_desktop.exe';
|
|
if FileExists(ExePath) then
|
|
begin
|
|
Exec('netsh.exe', 'advfirewall firewall delete rule name="AZA Desktop - Lokale Kommunikation"', '', SW_HIDE, ewWaitUntilTerminated, R);
|
|
Sleep(200);
|
|
Cmd := 'advfirewall firewall add rule name="AZA Desktop - Lokale Kommunikation" dir=in action=allow program="' + ExePath + '" localport=8000 protocol=tcp remoteip=127.0.0.1';
|
|
if not Exec('netsh.exe', Cmd, '', SW_HIDE, ewWaitUntilTerminated, R) or (R <> 0) then
|
|
Log('Firewall-Regel konnte nicht angelegt werden (Code: ' + IntToStr(R) + ')');
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
|
|
var
|
|
UserDataDir: String;
|
|
begin
|
|
if CurUninstallStep = usPostUninstall then
|
|
begin
|
|
UserDataDir := ExpandConstant('{userappdata}\AZA Desktop');
|
|
if DirExists(UserDataDir) then
|
|
begin
|
|
if MsgBox('Moechten Sie Ihre persoenlichen AZA-Daten ebenfalls loeschen?' + #13#10 + #13#10 +
|
|
'Dazu gehoeren:' + #13#10 +
|
|
' - Benutzerprofil (Name, Fachrichtung, Code)' + #13#10 +
|
|
' - Transkripte, Briefe, Rezepte, Kostenvoranschlaege' + #13#10 +
|
|
' - Vorlagen und Vorlagenpraeferenzen' + #13#10 +
|
|
' - Add-on-/Modul-Sichtbarkeit' + #13#10 +
|
|
' - KI-Einwilligung und Signatur' + #13#10 +
|
|
' - Autotext und Textbloecke' + #13#10 +
|
|
' - Stilprofile fuer Briefe' + #13#10 +
|
|
' - Alle sonstigen Einstellungen' + #13#10 + #13#10 +
|
|
'Ordner: ' + UserDataDir + #13#10 + #13#10 +
|
|
'Wenn Sie "Nein" waehlen, bleiben alle Daten erhalten' + #13#10 +
|
|
'und stehen bei einer Neuinstallation wieder zur Verfuegung.',
|
|
mbConfirmation, MB_YESNO or MB_DEFBUTTON2) = IDYES then
|
|
begin
|
|
DelTree(UserDataDir, True, True, True);
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|