Global HotKey



  • Hallo,

    ich versuche einen globalen HotKey zu definieren. Allerdings hab ich gerade zwei Probleme.

    1. Der funktioniert nur, wenn das Programm den Fokus hat
    2. Wenn der Key gedrückt wird, wird keine WM_HOTKEY Message gesendet.

    Der Code sieht kurz und knapp so aus:

    #include <windows.h>
    
    MultiShot::MultiShot() {
        [...]
        RegisterHotKey(winId(), 1, 0, VK_PRINT);
        [...]
    }
    
    bool MultiShot::winEvent(MSG *message, long *result) {
        qDebug() << "Win Event";
        *result = 0;
        if(message->message == WM_HOTKEY) {
            qDebug() << "Hotkey";
             if(message->wParam == 1) {
                 qDebug() << "Print";
                  makeScreenShot();
             }
             return true;
        }
        return false;
    }
    


  • Niemand eine Idee?

    Edit: Nun doch selbst gelöst.


Anmelden zum Antworten