|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
09.02.2011, 13:01 | #1 |
Форумчанин
Регистрация: 14.10.2009
Сообщений: 128
|
Перехват нажатий клавиш клавиатуры
Здравствуйте,уважаемые!
Начал недавно изучать хук клавы и мыши.Решил сделать простое отслеживание нажатие клавиш.Т.е. вы нажимаете любую клавишу клавы,а прога ведёт счёт нажатий.Сделал всё "по науке" через dll,но проблема вот в чём,програ отслеживает не только нажатие,но и отпускание,а оно мне не нужно. Вот сама dll-ка: Код:
Код:
И проблема ещё в ворде-при нажатии+отжатии считается по 5 раз того и того |
09.02.2011, 14:34 | #2 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
> в чём может быть проблема
в том, что игнорируются wparam и lparam > и куда "копать". в мсдн. Там написано, как отличить нажатие от отжатия.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
17.10.2014, 16:59 | #3 |
Форумчанин
Регистрация: 10.02.2014
Сообщений: 526
|
Продолжу тему...
Странная штука. Нашёл dll перехватчика. Всё, вроде, что мне надо, работает. Но при этом происходит странная штука: после запуска программы с перехватчиком блокируется многократное нажатие (например, если удерживать "=", то оно один раз наберётся и всё, а не начнёт строчить "=================" И ещё что-то происходит с альт-табом. На семёрке, например, не пропадает "окно" выбора программ из запущенных пока по программе не щёлкнешь мышкой. Причём при закрытии программы это не проходит... В чём может быть причина? Код:
|
20.10.2014, 22:56 | #4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Во-первых ты не всегда возвращаешь нажатие дальше по цепочке, отсюда и могут быть глюки. Имею ввиду Result := 0;
Во-вторых, вообще не пойму зачем тебе перехват, чтоб послать его сообщением в твою же форму...
I'm learning to live...
|
21.10.2014, 08:46 | #5 |
Форумчанин
Регистрация: 10.02.2014
Сообщений: 526
|
Попробовал понять что исправить, чтобы нажатие всегда возвращалось в цепочку, но так и не понял...
Перехват - чтобы форма получала клавиши, нажатые в другом окне, не мешая самому вводу в другое окно. |
21.10.2014, 09:49 | #6 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Ранновато тебе перехваты писать... Лучше бы теорию подтянул по хукам.
Я лично рекомендую использовать хук WH_JOURNALPLAYBACK
I'm learning to live...
|
21.10.2014, 10:13 | #7 |
Форумчанин
Регистрация: 10.02.2014
Сообщений: 526
|
Что ж мне теперь оставлять программку с глюком?... Пока я подтяну теорию - много времени пройдёт, у меня сейчас сильная загрузка по работе, а программка почти готовая, только с небольшим глюком... Или его сложно так просто исправить?
Для подтягивания это пойдёт? |
21.10.2014, 10:41 | #8 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Пойми. Хуки разрабатывались не для их применения в боевых условиях.
Я не знаю накой тебе такой изврат как хуки нужен, поэтому скалю зубы в сторону "прогу фтопку". Лично я бы так и сделал. Уверен что есть другие более надежные и правильные пути решить твою задачу. Других советов не будет. По крайней мере от меня.
I'm learning to live...
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Эмуляция нажатий клавиш | BorisBritva | Общие вопросы Delphi | 1 | 01.11.2010 13:09 |
Перехват нажатий клавиш - АLT | chandrasecar | Win Api | 8 | 27.11.2008 16:12 |
симуляция нажатий клавиш | 4321 | Общие вопросы Delphi | 14 | 23.10.2008 23:18 |
Иммитация нажатий клавиш клавиатуры | chandrasecar | Win Api | 5 | 11.10.2008 12:16 |
отслеживание нажатий клавиш | Артэс | Win Api | 6 | 14.06.2008 20:02 |