|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Отмена меню "ПУСК"
Поставил хук на клавиатуру. Отлавливаю нажатие клавиши Win. Задача если была нажата Win + колесо мышки, то не выводить меню пуск, иначе нормальная реакция на клавишу Win.
//Хук на клавиатуру Код:
function LowLevelKeyboardProc(nCode: integer; wParam: longint; lParam: longint): integer; stdcall; var p: PKBDLLHOOKSTRUCT; Kill:Bool; begin Kill:=False; if (nCode = HC_ACTION) then begin if (wParam=WM_KEYDOWN)or(wParam=WM_SYSKEYDOWN)then begin p:=PKBDLLHOOKSTRUCT(lParam); if ((p^.vkCode=VK_LWIN)or(p^.vkCode=VK_RWIN)) then begin IsWinKeyPressed:=True; // Kill:=True; end; end else if (wParam=WM_KEYUP)or(wParam=WM_SYSKEYUP) then begin p:=PKBDLLHOOKSTRUCT(lParam); if ((p^.vkCode=VK_LWIN)or(p^.vkCode=VK_RWIN)) then IsWinKeyPressed:=False; if ((p^.vkCode=VK_LWIN)or(p^.vkCode=VK_RWIN))and(IsMouseWheel) then begin IsMouseWheel:=False; IsWinKeyPressed:=False; // Kill:=True; end end end; if Kill then Result:=1 else Result:=CallNextHookEx(0, nCode, wParam, lParam); end; И получается если я убиваю Win на KEYDOWN у меня она остается нажатой, если убиваю и на KEYUP, то кнопка вообще не работает, и горячие клавиши естественно тоже |