FindWindow Problem
-
Hallo,
Ich glaub mein Problem ist relativ simpel.
Ich habe folgenden Code soweit:#include <iostream> #include <Windows.h> using namespace std; int main(int argc, char *argv[]) { while(1) { HANDLE hWindow = FindWindow(NULL, "Unbenannt - Editor"); while(hWindow) { cout << "Mach etwas solange der Editor geöffnet ist." << endl; } cout << "Mach nichts, da Editor nicht gefunden werden kann." << endl; } }Ich möchte das eine bestimmte Aktion die ganze Zeit durchgeführt wird sobald der Editor offen ist... Das Programm soll die ganze zeit laufen und überprüfen ob der Editor geöffnet wird. Doch mein Problem ist...
Ich habe Notepad nicht offen und starte das Programm... es wird ausgegeben "Mach nichts, da Editor nicht gefunden werden kann."... dann starte ich den Editor und es wird ausgegeben "Mach etwas solange der Editor geöffnet ist."
Sobald ich nun den Editor wieder schließe kommt nicht wie erwartet "Mach nichts, da Editor nicht gefunden werden kann." sondern der alte Satz "Mach etwas solange der Editor geöffnet ist." wird weiter ausgegeben. Anscheinend merkt das Programm nicht das der Editor wieder geschlossen ist, wie kann ich das beheben?~Probz
-
Probz schrieb:
wie kann ich das beheben?
So:
#include <iostream> #include <Windows.h> using namespace std; int main(int argc, char *argv[]) { while(1) { while(FindWindow(NULL, "Unbenannt - Editor")) { cout << "Mach etwas solange der Editor geöffnet ist." << endl; } cout << "Mach nichts, da Editor nicht gefunden werden kann." << endl; } }Nur sinnvoll ist das nicht gerade und es lässt sich bestimmt besser lösen..
-
Nachdem der FindWindow()-Aufruf durchgeführt wurde, hast du eine lokale Variable, die das Ergebnis enthält. Diese Variable wird anschließend nicht mehr verändert (und hat auch keinen Bezug mehr zu dem FEnster, das du gefunden hast).
-
hWindow = NULL;
bevor Du FindWindow() wieder aufrufst.
-
.