Vor der Deinstallation überprüfen ob Anwendungen aktiv sind

Alles zum Thema Inno Setup
Antworten
Benutzeravatar
Unantastbar
Administrator
Beiträge: 1560
Registriert: Mi 22. Jun 2016, 18:59
    Windows 10 Firefox
Hat sich bedankt: 80 Mal
Danksagung erhalten: 340 Mal
Status: Online

Vor der Deinstallation überprüfen ob Anwendungen aktiv sind

#1

Beitrag von Unantastbar » So 27. Aug 2017, 18:59

Hallo,

ich bin derzeit damit beschäftigt ein Repack mit > Inno Setup < zu erstellen.
Vor der Deinstallation soll überprüft werden, ob eine oder mehrere Anwendungen aktiv sind.
Die Deinstallation soll erst dann funktionieren, wenn diese Anwendung[en] beendet worden sind.

Diesen Code habe ich im www gefunden.

Code: Alles auswählen

[Code]
function IsAppRunning(const FileName: string): Boolean;
var
  FWMIService: Variant;
  FSWbemLocator: Variant;
  FWbemObjectSet: Variant;
begin
  Result := false;
  FSWbemLocator := CreateOleObject('WBEMScripting.SWBEMLocator');
  FWMIService := FSWbemLocator.ConnectServer('', 'root\CIMV2', '', '');
  FWbemObjectSet := FWMIService.ExecQuery(Format('SELECT Name FROM Win32_Process Where Name="%s"',[FileName]));
  Result := (FWbemObjectSet.Count > 0);
  FWbemObjectSet := Unassigned;
  FWMIService := Unassigned;
  FSWbemLocator := Unassigned;
end;

function InitializeUninstall: boolean;
begin
  Result := not IsAppRunning('notepad.exe');
  if not Result then
  MsgBox('Please close Notepad before running the Uninstaller ', mbError, MB_OK);
end;
Uninstall.jpg
Diese Meldung erscheint solange, wenn man auf Deinstallieren klickt, bis diese Anwendung geschlossen wurde.

Wie muss dann aber der Code aussehen, wenn nach mehreren Anwendungen geprüft werden soll :?:
Dazu sollte auch nur eine MsgBox angezeigt werden, wenn z.B. 2 aktive Anwendungen aktiv sind.
Ich hatte schon etwas rumprobiert aber da wurden mir 2 Benachrichtigungen nacheinander angezeigt.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Gruß, Sven

Antworten

Social Media