Здравствуйте, 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 >>