|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#16
|
||||
|
||||
Вот взято из MSDN
Код:
hhook = SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc, hinst, 0); LRESULT LowLevelKeyboardProc(INT nCode, WPARAM wParam, LPARAM lParam) { static BOOL fShiftPressed = FALSE; BOOL fHandled = FALSE; if (nCode == HC_ACTION) { KBDLLHOOKSTRUCT *pkbdllhook = (KBDLLHOOKSTRUCT *)lParam; switch (wParam) { case WM_SYSKEYDOWN: switch (pkbdllhook->vkCode) { case VK_LSHIFT: case VK_RSHIFT: { // the user pressed the shift key fShiftPressed = TRUE; break; } case VK_TAB: { if (pkbdllhook->flags & LLKHF_ALTDOWN) { // the user pressed Alt+Tab, execute AltTab hotkey handler fHandled = TRUE; } break; } case VK_ESCAPE: { if (pkbdllhook->flags & LLKHF_ALTDOWN) { // the user pressed Escape, end the AltTab container // window without switching the selected window fHandled = TRUE; } break; } } break; case WM_KEYUP: case WM_SYSKEYUP: switch (pkbdllhook->vkCode) { case VK_LMENU: case VK_RMENU: { // the user let go of the Alt key, end the AltTab container // window switching to the selected window break; } case VK_LSHIFT: case VK_RSHIFT: { // the user released the shift key fShiftPressed = FALSE; break; } } break; } } return (fHandled ? TRUE : CallNextHookEx(hhook, nCode, wParam, lParam)); } Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. Последний раз редактировалось angvelem, 06.10.2012 в 00:04. |