Funktionsweise
Im Ereignis Form_Load weisen Sie Werte für zwei Variablen zu (sAppName und sAppPath), die den Namen und den Pfad der auszuführenden Anwendung speichern. Im Ereignis cmdStart_Click benutzen Sie den bekannten Shell-Befehl zum Starten der Anwendung. Im Ereignis cmdCheck_Click rufen Sie die Funktion IsTaskRunning (im Modul definiert) auf und geben an diese den Namen der Anwendung (Fenstername) weiter. Wenn die Funktion einen Wert True ausgibt, wird eine Meldung zur erfolgten Ausführung angezeigt. Wenn die Funktion einen Wert False ausgibt, wird eine Meldung zur nicht erfolgten Ausführung angezeigt. Im Ereignis cmdClose_Click rufen Sie EndTask (im Modul definiert) auf um die Anwendung zu beenden.
Überprüfen der Ausführung
Sehen wir uns nun einmal an, was in IsTaskRunning und EndTask geschieht. IsTaskRunning erhält als Parameter sWindowName den Fensternamen. Um festzustellen, ob eine bestimmte Anwendung ausgeführt wird, rufen Sie die API-Funktion FindWindow auf. Wenn die Funktion FindWindow die Ausgabe 0 ergibt, wurde das Fenster nicht gefunden, d.h. die Anwendung wird nicht ausgeführt. Wird ein anderer Wert ausgegeben, bedeutet dies, dass die Anwendung ausgeführt wird.
Die Funktion EndTask erhält ebenfalls den Fensternamen als Parameter für sWindowName. Diese Funktion überprüft, ob die Anwendung mit dem Fensternamen sWindowName ausgeführt wird, ebenfalls unter Nutzung der API-Funktion FindWindow. Wenn das Fenster nicht gefunden wird, müssen Sie keine weiteren Schritte durchführen, da in diesem Fall die Anwendung nicht ausgeführt wird. Wenn dagegen die Anwendung ausgeführt wird, müssen Sie die API-Funktion IsWindow aufrufen, um festzustellen, ob der Handler des Fensters gültig ist. Wenn nicht, brechen Sie einfach den Vorgang ab. Andernfalls schließen Sie die Anwendung. Zum Schließen einer Anwendung verwenden Sie GetWindowLong, eine API-Funktion, die aus der Fensterstruktur Daten zum jeweiligen Fenster abruft und so feststellt, ob das Fenster deaktiviert wurde (WS_DISABLED).
Die API-Funktion PostMessage schließt die Anwendung und sendet eine Mitteilung an die Warteschlange des angegebenen Fensters (TargetHwnd). In diesem Beispiel entspricht die PostMessage mit dem Argument WM_CLOSE dem Aufruf des Befehls Close im System-Menü für das jeweilige Fenster.
Bei Fehlern zeigt die Funktion ShowError benutzerfreundlich entsprechende Meldungen an. Für die Funktion sind zwei Argumente erforderlich:
ShowError zeigt eine Meldung an, die die Fehlernummer sowie die Daten aus sText und sProcName enthält.
In diesem Artikel habe ich eine einfache Methode für das Starten, die Statusprüfung und das Beenden von Anwendungen mithilfe von API-Tools vorgestellt, mit der feststellbar ist, ob die Anwendung ausgeführt wird. Den Programm-Code zu diesem Artikel finden Sie hier.
Page: 1 2
Fraunhofer hat eine Wickelanlage für zylindrische Batteriezellen entwickelt, mit der sich neue Designs und Produktionsprozesse…
Epic Games setzt sich um Kartellstreit mit Google weitgehen durch. Die von einem US-Bundesgericht verhängten…
Erst 15 Prozent haben schon mal einen Behördengang online erledigt – und nur 31 Prozent…
Die Mehrheit der Verbraucher steht auch einer unkontrollierten Nutzung ihrer Daten durch KI kritisch gegenüber.…
Die Geschwindigkeit von Cyberangriffen hat sich erheblich erhöht. Angreifer exfiltrieren Daten in weniger als einem…
Google Chrome, Apple Safari und Microsoft Edge: Opera versucht mit KI-Innovationen und starkem Fokus auf…