Поставил хук на клавиатуру. Отлавливаю нажатие клавиши 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, то кнопка вообще не работает, и горячие клавиши естественно тоже