Re: Слежка за мышкой
От: Philip_PV Беларусь  
Дата: 14.01.05 14:52
Оценка:
Здравствуйте, Shmalex, Вы писали:

S>Как следить за мышой, перехватывать нажатие клаыишь и скрола?

Если я правильно понял, требуется перехватить нажатия не только для данного окна, но и для всех процессов в системе. Тогда:

Требуется поставить hook на мышь. См. SetWindowsHookEx:
SetWindowsHookEx(idHook: integer; lpfn: TFNHookProc; hmod: Cardinal; dwThreadId: Cardinal);

В твоём случаем idHook = WH_MOUSE (ставим на мышь);
lpfn = функция, которая будет получать сообщения. Должна иметь параметры (code: integer; wparam: integer; lparam: integer); Должна находится в DLL, если хочешь, чтобы обрабатывала сообщения от всех процессов; В этой и пишешь обработчики сообщений WM_xBUTTONUP, WM_xBUTTONDBLCLK, WM_xBUTTONDOWN и др., где x = L (левая кнопка), M(средняя, т.е. скролл, если есть), R(правая);
hmod = handle к DLL, к которой лежит lpfn; Если в текущем процессе hmod = 0;
dwThreadId = поток, к которому цепляешь hook, 0 — если цепляешь ко всем потокам.

В функции требуется вызывать CallNextHookEx(...);
В конце работы вызвать UnhookWindowsHookEx(...);

А вообще, по данному вопросу много инфы в нете, набери в поисковике Hooks in Delphi и смотри.
... << RSDN@Home 1.1.3 stable >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.