Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.03;
Скачать: CL | DM;

Вниз

как hook ом отловить нажатие cntrl+q ?   Найти похожие ветки 

 
Li_   (2004-08-23 12:23) [0]

Помогите разобраться как hook"ом отловить нажатие cntrl+q средствами api?


 
GrayFace ©   (2004-08-23 14:42) [1]

Не cntrl, а ctrl. Это делается только средствами api.
Хуки - не лучшее решение. Есть 2 варианта без хуков:
1) HotKey - минусы: не работает в некоторых играх, если сочетаний клавишь много, регистрация их всех займет много места.
2) Смотреть по таймеру. Не такой уж плохой вариант. Должен работать везде. Минус - не моймать очень быстрое нажатие на клавишу.
Хуки работают почти всегда. Но они не работают, например, в Morrowind. Прочитай статью hooks здесь. (с помощью поиска) Варианты с хуками:
3) WH_JOURNALRECORD - можно ставить БЕЗ dll. Есть 2 минуса: не ловит нажатия чего-либо с альтом, убирается при нажатии Ctrl+Alt+Del (решение - по таймеру ставить заново).
4) WH_KEYBOARD - минусы: нужна dll, геморрой - приходит около 10 соощений об 1 нажатии на кнопку - надо смотреть на время пришедших сообщений, хранить его глобально. У меня, почему-то, сыплются AV(даже в примерах к статье). Плюс - есть готовый пример в статье.

Я рекомендую первый вариант.


 
Dimka-gl ©   (2004-08-25 21:27) [2]

GrayFace
Поподробнее вариант №1 плиз


 
Li_   (2004-08-27 10:25) [3]

Ясное дело, что средствами api, дорогой GrayFace. (Я заметил куда зашел).
Я та как раз и юзаю WH_KEYBOARD. И все нормально ловиться, т.е. в отдельности каждая клавиша ловиться, а вот поймать одновременное нажатие ctrl и q не могу. Возможно, конечно, что не существет способа вообще, тады придеться ловить сначала ctrl, а потом букву, но, кажеться, что должен быть способ отлавливания нажатой клавиши и не отпущенной. Кто реально это знает, пожалуйста вспоможите.


 
KADAN ©   (2004-08-27 14:37) [4]

может GetKeyState поможет?


 
Manfred8   (2004-08-30 11:06) [5]

bCtrlKeyDown:=GetAsyncKeyState(VK_CONTROL)Shr((sizeof(SHORT) *   8) - 1);

  if ((kbp.vkCode=VK_ESCAPE and bCtrlKeyDown=1) then // Ctrl+Esc



Страницы: 1 вся ветка

Текущий архив: 2004.10.03;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.03 c
1-1095502387
f00rd
2004-09-18 14:13
2004.10.03
TListView и WinXP


8-1088095062
Sunny Way
2004-06-24 20:37
2004.10.03
Чтение JPEG


1-1095273812
kand
2004-09-15 22:43
2004.10.03
Подскажит, что за параметры (EmptyParam) задаются при открыт


14-1095082180
menart
2004-09-13 17:29
2004.10.03
VDSL


14-1095128166
КаПиБаРа
2004-09-14 06:16
2004.10.03
Вопрос по железу :)