Schließen von laufenden Anwendungen

Hallo!
In einigen Empirum-Paketen wird als Prozess, der vor einer Installation geschlossen werden soll, die IExplore.exe genannt. In der Empirum-Setup.inf-Version sah das so aus:
[Processes]
APP1=Evernote.exe, Evernote - %CLOSETEXT%, KillProcess %CONTINUETYPE%
APP2=iexplore.exe, Microsoft Internet Explorer, KillProcess CONTINUE
Der Wert der Variable %ContinueType% ist normalerweise „Abort“, so dass die Applikation manuell geschlossen werden muss, damit eine Installation starten kann.
Wir haben oft beobachtet, dass die IExplore.exe indirekt von anderen Programmen gestartet wird. Das bedeutet, dass der Anwender den Internet Explorer nicht schließen kann, wenn er dazu aufgefordert wird, und das Paket nie installiert wird. Daher haben wir die Variable %ContinueType% nur bei dieser App durch den festen Wert „Continue“ ersetzt, so dass die IExplore.exe-Prozesse automatisch nach Ablauf des Timeouts beendet werden.

Nach dieser langen Vorrede nun meine Frage:
Wie kann ich in den neuen Powershell-basierten Installationsskripten einer App einen festen Wert „Continue“ zuweisen, ohne alle Prozesse automatisch abzuschießen? In der neo42PackageConfig.json sehe ich dazu keine Möglichkeit.
Viele Grüße
Orge

Guten Morgen Orge,
der CONTINUETYPE kann nur global in der Setup.cfg eingestellt werden.
Sie können jedoch die Setup.cfg-Option „USERCANCLOSEALL“ konfigurieren und so dem Benutzer die Möglichkeit geben, alle aufgeführten Anwendungen über eine Schaltfläche zu schließen.

Gruß
Holger

Hallo Orge,

alternativ gäbe es allgemein gesprochen noch folgende Möglichkeit, wenn der Nutzer gewöhnlich einen angezeigten Prozess sowieso nur per ‚Close Applications‘-Button (USERCANCLOSEALL=1) schliessen könnte, da es ein nicht sichtbarer Prozess ist:

  1. diesen unsichtbaren Prozess nicht mit in die Liste unter ‚AppKillProcesses‘ aufzunehmen
  2. den CONTINUETYPE in der setup.cfg standardmäßig auf ABORT zu belassen (um deren manuelles Beenden wie gewünscht zu erlauben)
  3. einfach einen Aufruf Stop-NxtProcess -Name ‚ProcessName‘ in der CustomFunction ‚CustomInstallAndReinstallPreInstallAndReinstall‘ für den Installationsfall und in der CustomFunction ‚CustomUninstallBegin‘ für den Deinstallationsfall einzubauen
  • Vorteil:
    Die Installation würde im dem Fall, dass kein Nutzer eingreift oder eingreifen kann und keiner der störenden Prozesse unter ‚AppKillProcesses‘ aktuell läuft, trotzdem durchgeführt werden können.
  • Nachteil:
    Der Nutzer würde nicht auch auf diesen (evtl. auch versteckt) laufenden Prozess hingewiesen werden (und bekäme damit nie einen Hinweis den Prozess ggf. selbst beenden zu können, dieser würde im Ausführungsfall somit immer einfach beendet werden).

Gruß René.