Dieser Hook wird ausgelöst, wenn die Maus bewegt wird:
Delphi-Quellcode:
var
Form1: TForm1;
aHook : Cardinal;
FHookStarted : Boolean;
[...]
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
begin
Handled := False;
if (Msg.message = WM_CANCELJOURNAL) and FHookStarted then
aHook := SetWindowsHookEx(WH_JOURNALRECORD, @JournalProc, 0, 0);
end;
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if FHookStarted then
UnhookWindowsHookEx(aHook);
end;
function JournalProc(Code, wParam: Integer; var EventStrut: TEventMsg; Sender: TObject): Integer; stdcall;
var
aPoint : TPoint;
begin
Result := CallNextHookEx(aHook, Code, wParam, Longint(@EventStrut));
if Code < 0 then Exit;
if Code = HC_SYSMODALON then Exit;
if Code = HC_ACTION then
begin
if (EventStrut.message = WM_MOUSEMOVE) then
begin
GetCursorPos(aPoint);
Form1.Label1.Caption := IntToStr(aPoint.x) + ' ' + IntToStr(aPoint.y)
end;
end;
end;
so wird der hook gestartet:
Delphi-Quellcode:
hook starten
if (FHookStarted = false) then begin
aHook := SetWindowsHookEx(WH_JOURNALRECORD, @JournalProc, hInstance, 0);
FHookStarted := True;
end;
Du musst jetzt nur noch prüfen, ob sich sich in dem bereich deiner Form befindet oder nicht.
Gruß
[Edit]Sorry, hab ein Stückchen Code vergessen[/Edit]