![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Key hoook& mouse [D6, WinXP]
APanyovin © (2003-04-26 14:31:00)Пивет. Прошк прощения за избитую тему, но не опишите ли алгоритм перехвата клавишь и нажатия на мыши, если активно другое приложение.
спасибо
_ALEXey_ (2003-04-28 09:14:00) [1]Перехват мыши:
library Hooks;
uses
Windows,
Messages;
var
MouseH: THandle;
{$R *.res}
function MouseHook(Code, wParam, lParam: Integer): LResult; stdcall;
var
WND: HWND;
begin
If Code >= 0
then begin
Case wParam of
WM_RBUTTONUP{, WM_RBUTTONDOWN, WM_RBUTTONDBLCLK и т.д.}:
begin
// что-то делаем
end;
else Result:= CallNextHookEx(MouseH, Code, wParam, lParam);
end;
end
else begin
Result:= CallNextHookEx(MouseH, Code, wParam, lParam);
Exit;
end;
end;
function SetMouseHook: Boolean;
begin
Result:= True;
MouseH:= SetWindowsHookEx(WH_MOUSE, @MouseHook, hInstance, 0);
If MouseH = 0 then
Result:= False;
end;
procedure RemoveMouseHook;
begin
UnhookWindowsHookEx(MouseH);
end;
exports
SetMouseHook Name "SetMouseHook",
RemoveMouseHook Name "RemoveMouseHook",
end.
Почти также для клавиатуры, только тип хука нужен WH_KEYBOARD.
И еще - могут быть проблемы с адресными пространствами, но это уже другая тема.
sniknik (2003-04-27 21:13:00) [2]пример (рабочий нет, не знаю)
http://www.delphimaster.ru/cgi-bin/download.pl?look=1&id=1008193245&n=1
Cobalt (2003-04-27 02:51:00) [3]посмотри в разделе статьи - ключ. слово - Hooks