|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.10.2012, 23:16 | #1 |
Пользователь
Регистрация: 07.04.2011
Сообщений: 19
|
обработка клавиш из dll
На работе пишу дополнение в виде dll к одной программе.
В dll создаю класс, который автоматически загружается в программе. смысл класса, реализовать горячие клавиши. сначала хотел реализовать через keyeventhandler, но чтобы осуществить эту реализацию, необходим контрол или форма. у меня этого дела нет, а следовательно данная реализация мне не подходит. что очень огорчает, так как реализация именно через keyeventhandler мне подошла бы больше всего. вопрос к знатокам, как без формы / контрола применить в пустом классе обработчик keyeventhandler ? в связи с этой проблемой, решил перехватывать сообщения. регистрирую в системе через registerhotkey сочетание клавиш, потом отлавливаю это сообщение посредством application.addmessagefilter. там я проверяю, если активное окно - моя программа, запускаю выполнение кода. но проблема в том, что мои горячие клавиши съедают обработку горячих клавиш других приложений. например, если горячая клавиша CTRL + F, то в нотепаде, браузере и т.д. эти сочетания не обрабатываются. они приходят в мой код, а после чего не передаются далее "по цепочке" к своему отладчику. прошу помочь мне преодолеть эти трудности, сроки поджимают, а универсального решения нет |
22.10.2012, 23:36 | #2 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
Так вы наверное глушите их, надо отдать дальше системе.
Код показывайте. |
23.10.2012, 00:00 | #3 |
Пользователь
Регистрация: 07.04.2011
Сообщений: 19
|
код на работе. в принципе, я красочно все описал. по памяти, в кратце код такой:
Код:
|
23.10.2012, 10:00 | #4 |
Пользователь
Регистрация: 07.04.2011
Сообщений: 19
|
более точный код.
необходимо, чтобы нажатые клавиши, после обработки, переходили в следующий обработчик. Код:
Код:
|
23.10.2012, 11:03 | #5 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
Почему return true ?
|
23.10.2012, 12:42 | #6 |
Пользователь
Регистрация: 07.04.2011
Сообщений: 19
|
потому что пробывал разные способы, что сработало. ни один не работает.
я так понимаю, смысл в том, что при нажатии клавиш, создается сообщение. это сообщение перекрывает обработку клавиш, и они никогда не нажмутся. как же перебороть это? моя dll, чисто по сути, должна внутри программы обрабатывать нажатия клавиш. мне вовсе не обязательно, чтобы они работали за ее пределами. а так как единственный выход который я нашел - это регистрация хоткеев и отлов их, то мне нужно знать как передать комбинацию клавиш дальше, другим программам, типа блокнот, браузер, или что у нас сейчас активно. return false не делает того, что я желаю. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
обработка нажатий клавиш в Qt | SiNoNoto | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 9 | 28.06.2017 16:42 |
Обработка нажатия клавиш в цикле | mLight | Общие вопросы Delphi | 4 | 05.11.2011 19:03 |
Обработка клавиш на TListBox | Melanholly | Общие вопросы Delphi | 2 | 31.10.2011 14:06 |
Обработка исключения из DLL libmysql.dll | san4ezart | Помощь студентам | 2 | 28.08.2011 22:39 |
обработка нажатия клавиш VC++ консоль | rest | Помощь студентам | 0 | 06.10.2009 07:53 |