Активация рабочего стола

Общие вопросы, не зависящие от языка реализации.

Модераторы: Duncon, Eugie, Romeo, Hawk

Ответить
MeDuSa
Сообщения: 1
Зарегистрирован: 25 ноя 2004, 11:30
Откуда: Москва
Контактная информация:

25 ноя 2004, 12:02

Ребята, подскажите плз. Мне нужно поставить хук, который реагирует, если пользователь провёл мышкой по рабочему столу. Кто знает какой хук поставить?
Аватара пользователя
Romeo
Сообщения: 3091
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

25 ноя 2004, 12:24

По логике нужно поставить хук на GetMessage и проверять чтобы дискриптор окна равнялся результату вызова GetDesktopWindow(). Но это теоретически, на практике не пробовал.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Eugie
Сообщения: 707
Зарегистрирован: 17 фев 2004, 23:59
Откуда: SPb

29 ноя 2004, 13:04

В принципе, да, только следует иметь в виду, что глобальный хук (т.е. получающий сообщения из любого приложения, в т.ч. десктопа) должен находиться в dll. Советую посмотреть описание SetWindowsHookEx
Аватара пользователя
Romeo
Сообщения: 3091
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

29 ноя 2004, 14:52

В Dll или в запущенном exe-сервисе.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Eugie
Сообщения: 707
Зарегистрирован: 17 фев 2004, 23:59
Откуда: SPb

30 ноя 2004, 13:00

Нет, именно в dll: сторонний процесс должен иметь возможность вызвать хук-функцию в своем контексте АП
Аватара пользователя
Romeo
Сообщения: 3091
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

02 дек 2004, 18:45

Не буду спорить потому, что не уверен. Возможно и так.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Ответить