Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.032 c
1-1095092611
Yanis
2004-09-13 20:23
2004.10.03
Frame


4-1091595060
Eagle8
2004-08-04 08:51
2004.10.03
win


14-1095152893
Cosinus
2004-09-14 13:08
2004.10.03
Возьметесь ли написать такую программу и сколько будет стоить?


1-1095609224
Елис
2004-09-19 19:53
2004.10.03
StrinGrid


1-1095611074
m52
2004-09-19 20:24
2004.10.03
Какую выбрать программу для создания дистрибутива?




   Наверх