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.


Anmelden zum Antworten