Какая клавиша была нажата?Крючки для клавиатуры - PullRequest
1 голос
/ 16 августа 2010

Я использую низкоуровневые хуки, но не могу определить, какая клавиша была нажата. Значения одинаковы для каждого ключа. Здесь я что-то не так делаю?

Метод Крюка

void hook() {

    /** this part is probably not important since I use global WH_KEYBOARD_LL, is that right? */
    HWND hwnd = FindWindow(NULL, "Vertices.exe");
    HINSTANCE instance = (HINSTANCE)GetWindowLong(hwnd, GWL_HINSTANCE);
    /** end part */

    SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc, instance /** or NULL ? */, NULL);
}

Определение обратного вызова (у меня есть контент в приложении)

LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam);

Значения даны при любой нажатой клавише

nCode:0 | wParam:0x100 | lParam:0x18fe14

только wParam изменяется на 0x101 при нажатии клавиши вверх (0x100 при нажатии клавиши вниз)

1 Ответ

3 голосов
/ 16 августа 2010

KBDLLHOOKSTRUCT *kbdStruct = (KBDLLHOOKSTRUCT*)lParam;

:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...