Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо