|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Глобальный хук & событие отжатия клавиши
Пишу программу, которая отлавливает ВСЕ нажатия клавиш в системе. Пишется она для того чтобы регулировать громкость с клавиатуры (клавиатура стандратная, блин ). Привожу часть кода из библиотеки :
Код:
function Key_Hook(Code: integer; wParam: word; lParam: DWord): Longint;stdcall; export; var KeyState:integer; begin If Code>=0 then begin if HiWord(GetKeyState(VK_MENU)) <> 0 then begin if HiWord(GetKeyState(VK_CONTROL)) <> 0 then begin case wParam of VK_ADD:VolumeHigh; //moya function VK_SUBTRACT:VolumeLow; //moya function VK_MULTIPLY: begin KeyState:=GetKeyState(wParam); if HiWord(KeyState)=0 then // {KeyState>=0 toze kak variant} VolumeOnOff; //moya function end; end; end; end; end; result:=0; end; так вот вроде бы всё работает. Зажимаю Alt+CTRL+Num* - звук отрубается. Ещё раз нажимаю - врубается. НО этого не происходит в играх и в word'е (может и ещё где ,просто тут замечено). Там ,как я ппдодозреваю, происходит лишняя обработка (нажал клавишу + отпустил клавишу)...в итогу звук отрубается и тут же врубается. Как мне сделать, чтобы я мог контролировать отжатие клавиши и в этих случаях ?? А то уже 4-й день бьюсь над этим..что только не пробовал. Если чтО ,использую хук WH_KEYBOARD. |