Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];

Вниз

как 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 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.039 c
14-1094798237
PVOzerski
2004-09-10 10:37
2004.10.03
Есть ли sudo и альтернативные системы ввода пароля для NT?


3-1094120992
Pipl
2004-09-02 14:29
2004.10.03
Добавление строки в Excel


3-1094184007
Карелин Артем
2004-09-03 08:00
2004.10.03
В ожидании EVENT. Чем пользоваться?


14-1094810819
infom
2004-09-10 14:06
2004.10.03
Мне вот интересно ...


1-1095244558
Максим
2004-09-15 14:35
2004.10.03
DBGrid c FixedCols





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский