![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Здравствуйте!
Ситуация такая... Через глобальный хук отлавливаю отпускание определенной клавиши клавиатуры в системе и нажатие кнопки на форме в чужом приложении. При этом дальнейшая обработка этих сообщений другими приложениями не нужна. Всё хорошо перехватывается, но возникают две проблемы: - клавиша клавиатуры остаётся залипшей - кнопка на форме визуально не нажимается. Как это можно побороть? Простите, что создал тему не в том разделе. Последний раз редактировалось Valart, 19.02.2014 в 00:41. |
|
#2
|
||||
|
||||
|
Цитата:
В функции ловушки события возвращайте 0, система должна дальше его обрабатывать |
|
#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 для проверки зацикливания. |