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.
Neueste Kommentare
2 Kommentare zu Visual Basic 6.0: Starten und Beenden von Anwendungen
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.
Starten und beenden von Anwendunbgen
Die Idee ist ja ganz nett,aber unter Vista läuft es nicht und wenn man die Fehler nicht beseitigt gehts auch sonst nicht.
is halt wie alles ausm Osten ,halbgares zeug.
AW: Starten und beenden von Anwendunbgen
Es funktioniert unter Vista nicht, da der Beitrag von 2002 ist und somit Vista noch nicht vorhanden war^^