Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.04.2010, 16:22   #1
chandrasecar
Форумчанин
 
Аватар для chandrasecar
 
Регистрация: 03.10.2008
Сообщений: 180
По умолчанию Как отследить нажатие мыши не важно где?

Как отследить нажатие мыши не важно где?

Нужно перехватывать сообщение о нажатии мыши (правой и/или левой), выполнять код (например считывать координаты), а потом передавать дальнейшую обработку Виндоусу. Нажатие кнопки мыши может быть где угодно, например клик по элементу управления в другом приложении, при этом работа в этом приложении не должна нарушаться. Например в Ворде: клик по меню файл -> пункт "открыть" -> появляется окно и нажатие по кнопки "открыть"; этот процесс не прерывается, а программа ловит сообщения о кликах и записывает координаты курсора. Как такое реализовать?

пробовал создавать процедуры через Application и обработчики реагирующие на WM_LBOTTONDOWN - работает только в пределах моего приложения. Хуки не передают обработку обратно Виндоусу.
лучший подарок женщине-программисту

Последний раз редактировалось chandrasecar; 11.04.2010 в 16:24.
chandrasecar вне форума Ответить с цитированием
Старый 11.04.2010, 17:00   #2
was
Пользователь
 
Регистрация: 28.07.2009
Сообщений: 13
По умолчанию

Игрался в свое время. Код неряшливый (так, баловался), но принцип понятен. Взаимодействие dll с программой, которая анализирует нажатие клавиш клавиатуры и мыши (а также движение мыши), реализовал через сокет по UDP. Так мне было удобнее и интереснее. Можно и по другому сделать . Желаю удачи!
Вложения
Тип файла: zip keymouse.zip (95.8 Кб, 111 просмотров)
was вне форума Ответить с цитированием
Старый 12.04.2010, 10:41   #3
chandrasecar
Форумчанин
 
Аватар для chandrasecar
 
Регистрация: 03.10.2008
Сообщений: 180
По умолчанию

Любопытная программка. На чем она написана? И что означаю цифры в 1, 2, 3, 4, 5 столбцах? 6 и 7 как я понял это координаты курсора. А последний, типа Handle?
лучший подарок женщине-программисту
chandrasecar вне форума Ответить с цитированием
Старый 12.04.2010, 11:02   #4
was
Пользователь
 
Регистрация: 28.07.2009
Сообщений: 13
По умолчанию

Написана на С. Проект на Microsoft Visual Studio для dll я Вам выложил.
Для мыши последовательность чисел следующая:
1 - Номер процесса который подключился к DLL, тоесть каждый раз когда Вы переносите мышь на новое окно, появляется новый процесс.
Дальше последовательность следующая
2 - potok_mouse.mes.message = WH_MOUSE;
3 - potok_mouse.mes.nCode = nCode;
4 - potok_mouse.mes.wParam = wParam;
5 - potok_mouse.mes.lParam = lParam;
Точно так как в моем исходном коде посылается пакет UDP из DLL
Дальше при хуке HookProcedureMouse( int nCode, WPARAM wParam, LPARAM lParam )
В lParam передается адрес на структуру MOUSEHOOKSTRUCT, где из нее берется
6 - координата X
7 - координата Y
8 - HWND окна,где "скребет" мышь , в шестнадцатеричном представлении
was вне форума Ответить с цитированием
Старый 19.04.2010, 18:05   #5
UginL7
Пользователь
 
Регистрация: 19.04.2010
Сообщений: 14
По умолчанию

Хуками. Можн немного сложнее - драйвер-фильтр написать.
Victōrem a victo superāri saepe vidēmus.
UginL7 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как отследить нажатие на ссылку, без использования JS [Smarik] PHP 2 04.07.2009 15:27
Как отследить нажатие кнопки? Bezdar Microsoft Office Excel 9 17.12.2008 11:12
Как отследить нажатие кнопки Обновить из PHP? Timpi PHP 4 11.07.2008 09:16
как отследить нажатие клавиши Delete D-fens Общие вопросы Delphi 4 07.06.2007 23:58