Я использую перехватчики низкого уровня, но не могу определить, какая клавиша была нажата. Значения одинаковы для каждого отдельного ключа. Я здесь что-то делаю не так?
Крючковый метод
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 при нажатии клавиши)
KBDLLHOOKSTRUCT *kbdStruct = (KBDLLHOOKSTRUCT*)lParam;
. Спасибо - person Mikulas Dite   schedule 16.08.2010