GetAsyncKeyState



  • Hey ho, also folgendes:

    in nem c/c++ Programm ohne gui kann man ja einfach mit:

    if(GetAsyncKeyState(VK_F1)) {
        // machwas();
    }
    

    Systemweit das Drücken von F1 erkennen, wenn ich das aber nun in nen c/c++ Programm mit Gui einbaue:

    LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
        if(GetAsyncKeyState(VK_F1)) {
            // machwas();
        }
    

    (ich weis nicht genau wo 😕 reagiert er nur, wenn das Fenster im Vordergrund ist, es soll aber Systemweit merken, wenn die Taste (Hotkey) gedrückt wurde.

    Was mache ich Falsch? Brauche Hilfe!

    Danke!



  • *push* brauche hilfe!



  • Dr!v3r schrieb:

    Was mache ich Falsch?

    was du da falsch machst ist, dass du die abfrage mit GetAsyncKeyState() in die WndProc schreibst. die wird aber nur aufgerufen wenn dein fenster eine nachricht bekommt...

    btw: richtiger wäre es eigentlich so

    if( GetAsyncKeyState(VK_F1) & 0x8000 )
      // mach was
    


  • oha, stimmt.

    Wo setze ich es sonst hin? Weiter oben wo das Fenster erstellt wird?

    mfg



  • Heut ist net mein Tag^^ habs schonwieder selbst gelöst, einfach nen Thread gemacht und da die funktion aufgerufen.. passt scho!

    mfg


Anmelden zum Antworten