Findet Fenster nicht
-
Hi
ich schreibe z.Z. ein Programm welches ein anderes Programm steuern soll. Wenn ich das ganz so mache dann wird auch die Schleife durchlaufen, damit ich anschließen mit dem nächsten Fenster arbeiten kann.
while(FindWindow("Fensterklasse","Fenstertitel")==NULL) { // so übersichtlicher (TEST) SendMessage(hWndTextBox,WM_SETTEXT,0,(LPARAM)TEXT("2")); // Zahl eintragen, Sleep(1); keybd_event(VK_RETURN,0,0,0); // Eingabe mit keybd_event(VK_RETURN,0,KEYEVENTF_KEYUP,0); // Return bestätigen Sleep(5000); }Wenn ich das ganze aber so lösen würde, was besser wäre weil das Programm so unterschiedliche Ladezeiten haben kann, funktioniert es nicht. Er findet das nächste Fenster nicht, obwohl es angezeigt wird:
while(FindWindow("Fensterklasse","Fenstertitel")==NULL) { while(lstrcmp(szSelect,"1")!=0) // Fenster geladen? SendMessage(hWndTextBox,WM_GETTEXT,2,(LPARAM)szSelect); SendMessage(hWndTextBox,WM_SETTEXT,0,(LPARAM)"2"); // Auswahl eintragen while(lstrcmp(szSelect,"2")!=0) // Auswahl eingetragen? SendMessage(hWndTextBox,WM_GETTEXT,2,(LPARAM)szSelect); lstrcpy(szSelect,""); // String leeren keybd_event(VK_RETURN,0,0,0); // Eingabe mit keybd_event(VK_RETURN,0,KEYEVENTF_KEYUP,0); // Return bestätigen }
-
Irgendwie verstehe ich nicht so ganz, was du mit dem Code bezwecken willst

-
Also das Programm ist schon älter und nicht gerade sehr bedienerfreundlich. In diesem Teil muss in ein Textfeld eine "2" eingedragen und mit Return bestätigt werden. Dann dauert es ein bisschen und das Fenster erscheint wieder und die "2" muss erneut eingetragen werden. Das ganze solange bis ein anderes Fenster angezeigt wird. Aber diese Fenster wird nur im oberen Code gefunden, nicht im unteren.
-
Deine Programm-Logik finde ich trotzdem etwas seltsam: Solange er das Fenster nicht findet, soll er in hWndTextBox (woher kommt das überhaupt) einen bestimmten Text setzen.
