Tastenevent an Fenster schicken, was mache ich falsch?



  • hallo,

    ich möchte einen tastencode an ein fenster schicken (hier desktop)

    HWND handle = GetDesktopWindow();
    SetForegroundWindow(handle);
    SendMessage(handle,VK_F5,0,0);
    

    allerdings passiert rein garnix, was amche ich falsch!

    Und noch eine frage, wie bekomme ich ein handle eines fensters, wo mir der name (in der taskleiste) nicht bekannt ist!?



  • gden schrieb:

    hallo,

    ich möchte einen tastencode an ein fenster schicken (hier desktop)

    HWND handle = GetDesktopWindow();
    SetForegroundWindow(handle);
    SendMessage(handle,VK_F5,0,0);
    

    allerdings passiert rein garnix, was amche ich falsch!

    VK_F5 ist keine Windows-Nachricht, du solltest stattdessen eine WM_KEYDOWN und WM_KEYUP nachricht schicken mit dem Wert der Taste als wParam:

    SendMessage(handle,WM_KEYDOWN,VK_F5,/*weiß nicht genau*/);
    

    (den lParam müsstest du dir mit Hilfe der MSDN selber zusammenbauen)

    Und noch eine frage, wie bekomme ich ein handle eines fensters, wo mir der name (in der taskleiste) nicht bekannt ist!?

    Über was für ein Fenster reden wir? FindWindow() kann jedes Fenster anhand des Namens oder der Window-Klasse finden, ansonsten könntest du dich noch mit EnumWindows() durch alle Top-Level-Fenster durchhangeln und hoffen, daß du das "richtige" irgendwie erkennst.


Anmelden zum Antworten