Prüfen ob ein bestimmtes Programm läuft..
-
Wie kann ich Prüfen ob z.B. Word gerade läuft ?
-
Das verschieben wir mal nach WinAPI, die brauchst du da bestimmt.
-
Du musst mit FindWindow das Fenster suchen.
Wenn diese Funktion NULL zurückgibt, gibt es das Fenster nicht.Am besten gibst du den Klassennamen des Fensters an. Diesen findest du zum Beispiel mit Spy++ heraus, was bei visual c++ dabeiliegt.
-
Oder einen Snapshot machen und kucken, ob die gesuchte Exe darin auftaucht.
-
Das ist die umständliche Lösung, IMHO weit übertrieben.
Man schießt ja auch nicht mit Kanonen auf Spatzen.
-
Ich weiß ne bessere Lösung:
BOOL wordRunning; int id = MessageBox(NULL, "Läuft Word gerade?", "Frage", MB_ICONQUESTION|MB_YESNO); wordRunning = (id==IDYES);
-
Original erstellt von cd9000:
Das ist die umständliche Lösung, IMHO weit übertrieben.
Man schießt ja auch nicht mit Kanonen auf Spatzen.Wieso umständlich? Wenn er nur die Exe kennt zum Beispiel und keinen Fenstertext, der sich zu dem noch ändern kann. Ich finde das ist die einzige sichere Möglichkeit.
-
Ist auch nicht bombensicher, denn wer weiß, ob MS nicht vielleicht irgendwann den EXE-Namen (WINWORD) ändern wird... Aber der ändert sich sicher weniger wahrscheinlich als die Fensterklasse.
Das Sicherste ist wahrscheinlich wirkliche meine Lösung. Und warum eigentlich nicht? Sooo viel verlangt man dem User dabei doch auch nicht ab.[ Dieser Beitrag wurde am 11.11.2002 um 18:16 Uhr von WebFritzi editiert. ]
-
Selbst wenn sie (bzw der User) den Namen nicht ändern, könnte es immernoch andere Dateien mit demselben Dateinamen geben.