Visual Basic 6.0: Starten und Beenden von Anwendungen

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:

  • sText: der Text der anzuzeigenden Fehlermeldung
  • sProcName: der Name des Verfahrens bzw. der Funktion, in dem bzw. in der ein Fehler auftrat

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

ZDNet.de Redaktion

Recent Posts

Digitalisierte Batteriezellenproduktion

Fraunhofer hat eine Wickelanlage für zylindrische Batteriezellen entwickelt, mit der sich neue Designs und Produktionsprozesse…

2 Tagen ago

Urteil: Google muss Play Store für App-Stores von Drittanbietern öffnen

Epic Games setzt sich um Kartellstreit mit Google weitgehen durch. Die von einem US-Bundesgericht verhängten…

2 Tagen ago

Digitale Verwaltung: 6 von 7 Deutschen ohne Erfahrung

Erst 15 Prozent haben schon mal einen Behördengang online erledigt – und nur 31 Prozent…

2 Tagen ago

Verbraucher sehen KI als Risiko für Datensicherheit

Die Mehrheit der Verbraucher steht auch einer unkontrollierten Nutzung ihrer Daten durch KI kritisch gegenüber.…

2 Tagen ago

Neue Cyberbedrohungen für Verbraucher

Die Geschwindigkeit von Cyberangriffen hat sich erheblich erhöht. Angreifer exfiltrieren Daten in weniger als einem…

2 Tagen ago

Opera: Mit genKI und Datenschutz den Browser-Giganten trotzen

Google Chrome, Apple Safari und Microsoft Edge: Opera versucht mit KI-Innovationen und starkem Fokus auf…

2 Tagen ago