
12.11.2012, 14:28
|
Прохожий
|
|
Регистрация: 30.10.2012
Сообщения: 33
Репутация: 10
|
|
Код:
var
SysHook : HHook = 0;
Wnd : Hwnd = 0;
nx1:pointer;
function SysMsgProc(code : integer; wParam : word;
lParam : longint) : longint; stdcall;
begin
CallNextHookEx(SysHook, Code, wParam, lParam);
if code = HC_ACTION then
begin
Wnd := TMsg(Pointer(lParam)^).hwnd;
if TMsg(Pointer(lParam)^).message =WM_KEYDOWN then //Работает
case (TMsg(Pointer(lParam)^).wParam) of
37: begin left() end;
end;
end;
end;
procedure left();
begin
keyctrl(nx1);
end;
// Процедура запуска.
procedure RunStopHook(State : Boolean;pointval:pointer) export; stdcall;
begin
if State=true then
begin
// Запускаем ловушку.
SysHook := SetWindowsHookEx(WH_GETMESSAGE,
@SysMsgProc, HInstance, 0);
nx1:=pointval;
end
else
begin
// Отключить ловушку.
UnhookWindowsHookEx(SysHook);
SysHook := 0;
end;
end;
exports RunStopHook;
|