Крюк LowLevelKeyboardProc не срабатывает для клавиш яркости - PullRequest
2 голосов
/ 02 октября 2019

Я пытаюсь перехватить события клавиатуры, используя Win32 API в C ++. Моя проблема в том, что некоторые специальные клавиши (для яркости) не вызывают мой обратный вызов.

У меня Dell XPS 15, последняя модель. В верхней части экрана расположены мультимедийные клавиши для настройки параметров звука и яркости экрана. Я вижу нажатия клавиш настройки звука с помощью WH_KEYBOARD_LL, но не клавиш яркости экрана.

Я хочу перехватить и переназначить клавиши яркости экрана. Чего мне не хватает?

Вот как я регистрирую обратный вызов:

HHOOK keyboardHook = SetWindowsHookEx(WH_KEYBOARD_LL, keyboardHookProc, 0, 0);

А вот мой обратный звонок:

LRESULT CALLBACK keyboardHookProc(int nCode, WPARAM wParam, LPARAM lParam) {
    PKBDLLHOOKSTRUCT p = (PKBDLLHOOKSTRUCT)(lParam);
    std::cout << p->vkCode << endl;
    return CallNextHookEx(NULL, nCode, wParam, lParam);
}
...