|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Постхуковые трудности
Здравствуйте!
Ситуация такая... Через глобальный хук отлавливаю отпускание определенной клавиши клавиатуры в системе и нажатие кнопки на форме в чужом приложении. При этом дальнейшая обработка этих сообщений другими приложениями не нужна. Всё хорошо перехватывается, но возникают две проблемы: - клавиша клавиатуры остаётся залипшей - кнопка на форме визуально не нажимается. Как это можно побороть? Простите, что создал тему не в том разделе. Последний раз редактировалось Valart, 19.02.2014 в 00:41. |
#2
|
||||
|
||||
Цитата:
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#3
|
|||
|
|||
Нет, не нужна. В этом-то весь смысл.
|
#4
|
||||
|
||||
Смысл - весчь хорошая. Тогда перенесите всё это дело из сборки в *.dll
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#5
|
|||
|
|||
Оно и так в dll.
|
#6
|
||||
|
||||
А какой вы фильтр используете, часом не WH_DEBUG? Или WH_KEYBOARD? Входной информации ноль
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#7
|
|||
|
|||
Для клавиатуры - WH_KEYBOARD_LL.
|
#8
|
||||
|
||||
Это низкоуровневая ловушка клавиатуры, тогда как обычно используется WH_KEYBOARD специально для WM_KeyDown или WM_KeyUp
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#9
|
|||
|
|||
Alegun, может ну его следовать принципу "Я не понял вопроса, но всё же Вам на него отвечу!"? А то это больше троллинг напоминает.
|
#10
|
||||
|
||||
Цитата:
Я за здоровый экстрим! Спасибо за "спасибо") |
#11
|
||||
|
||||
Код показывайте, у всех он разный, да и задачи тоже отличаются
Я не понял Вашего вопроса, но всё же Вам на него отвечу! Последний раз редактировалось Alegun, 20.02.2014 в 07:58. |
#12
|
|||
|
|||
Самоуверенность - штука хорошая. Завидую!
А по теме: я, прежде чем задавать вопрос, перерыл кучу примеров и статей. Везде были примеры с дальнейшей передачей сообщения. Мне это не подходит. Последний раз редактировалось Valart, 19.02.2014 в 22:53. |
#13
|
|||
|
|||
Как всегда, всё было просто... Надо было на некоторое время отвлечься от проблемы.
Решил вопрос с залипшей клавишей перехватом не только отпускания клавиши, но и нажатия. А в обработке нажатия активирую флаг, который потом проверяю. Т.о. если нужная мне клавиша была нажата и отпущена, выполняется перехват с не пусканием события дальше и определённый код. А если эта клавиша была нажата в сочетании с другой (в таком случае мне это событие не интересно), то опять же перехватываю событие и выполняю keybd_event со своим dwExtraInfo для проверки зацикливания. |