SendMessage einfaches Enter senden
-
Hiho,
ich möchte in einer anderen Anwendung einfach nur den "OK" Button drücken.
Aber es will sich einfach nichts rühren:HWND parent = ::FindWindow(NULL, "Rg Manager"); //Name des Fensters innerhalb //der anzusprechenden Anwendung... HWND button = ::FindWindowEx(parent, NULL, "Button", "OK"); //Button ist von Klasse "Button" und beschriftet mit "OK"...hat zudem IDNR 1 ::SendMessage(button,WM_KEYDOWN, VK_RETURN, 0); //Entertaste down ::SendMessage(button,WM_KEYUP, VK_RETURN, 0); //und wieder up
-
Hm, vielleicht braucht der Button vorher den Fokus (SetFocus)? Sonst probier mal BM_CLICK oder schick gleich eine entsprechende WM_COMMAND - Nachricht an das Parent-Fenster

Edit: Ich weiß nicht, ob das einen Unterschied macht, aber man kann ja auch "Hotkeys" setzen, indem man den Button "&OK" nennt. Im Dialogfenster sieht das dann so aus: OK
Wenn also das "O" vom "OK" unterstrichen ist, probier einfach mal den Button mit "&OK" zu finden.Edit nummero 2: Hast du eigentlich überprüft, ob FindWindow bzw FindWindowEx gültige Handles (!=NULL) zurückgeben?
-
Also das Gewurschtel mit VK_RETURN, kann so, wie Badestrand schon gesagt hat, nicht klappen. Nimm BM_CLICK.