![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Участник клуба
Регистрация: 28.03.2007
Сообщений: 1,814
|
![]()
Здравствуйте форумчане!
Такой вопрос у меня: Набросал хук на мышь где отлавливаю нажатие на клавиши и движение курсора. С этой частью нормально. А как мне всё это безобразие передавать в приложение, чтобы в дальнейшем уже приложение обрабатовало действия. Пока на ум пришло только пересылка с помощью SendMessage, т.е хуком отловили сообщение например WM_LBUTTONUP и это же сообщение переслали в приложение. Или просто как нибудь передать параметр, например 1 это WM_LBUTTONUP 2 это WM_LBUTTONDOWN и т.д. Так ли я мыслю или это делается по другому. Больше года уже не писал в делфи, практически все тонкости забыл |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
![]() Код:
Код:
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
![]() |
![]() |
![]() |
#3 |
Участник клуба
Регистрация: 28.03.2007
Сообщений: 1,814
|
![]()
Сделал но сообщения о нажатой кнопки мыши передаются в программу только когда курсор находится над ней. если кликать за пределами окна то ничего не происходит.
![]() |
![]() |
![]() |
![]() |
#4 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#5 |
Участник клуба
Регистрация: 28.03.2007
Сообщений: 1,814
|
![]()
Вот исходник Dll
Код:
Код:
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 11.04.2012
Сообщений: 212
|
![]()
DLL не нужна вообще.
Для глобального перехвата мышиных событий существует хук WH_LL_MOUSE. |
![]() |
![]() |
![]() |
#7 |
Участник клуба
Регистрация: 28.03.2007
Сообщений: 1,814
|
![]()
Да получилось (WH_MOUSE_LL = 14) а почему не получается через WH_MOUSE?
Последний раз редактировалось SERG1980; 29.11.2012 в 11:33. |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 11.04.2012
Сообщений: 212
|
![]()
потому что после установки хука dll внедряется отдельным экземпляром в каждое приложение, которому системой посылаются мышиные сообщения.
В том экземпляре, который ты загрузил ручками с целью вызова StartMouse, переменная WindowHd была инициализирована значением хендла искомого окна. Во всех прочих потенциально загружаемых системой экземплярах никто эту процедуру не вызывал, поэтому WindowHd в них не инициализирована. |
![]() |
![]() |
![]() |
#9 |
Участник клуба
Регистрация: 28.03.2007
Сообщений: 1,814
|
![]()
Ну хорошо а вы можете мне показать на примере как сделать без DLL хук на мышь с помощью WH_LL_MOUSE
|
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
![]()
...вечером скину такой прожект, машина на работе голяк.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Передача сообщения в порядке очереди | g-davicelli | Работа с сетью в Delphi | 1 | 07.11.2011 05:38 |
Передача сообщения программе | Anfall | Общие вопросы Delphi | 13 | 13.08.2011 13:29 |
прием передача сообщения от сервера клиенту и на оборот | Lokos | Работа с сетью в Delphi | 4 | 24.08.2010 18:24 |
Передача сообщения о нажатии клавиши в DOSBox | Gerzs | Общие вопросы Delphi | 3 | 15.11.2009 19:02 |
Передача сообщения из программы в свою Dll | SergeySK | Общие вопросы Delphi | 3 | 01.11.2007 14:42 |