Also - ich habe folgendes Problem:
Ich will Windowsweit die Koordinaten aller Klicks mit der linken bzw rechten (getrennt behandelt) Maustaste durch mein Programm in einer Datei speichern lassen.
Ich hab so ne Ahnung wie das über einen Hook geht -> komme aber dann mit der Auswertung der Daten nicht klar...
Im folgenden ist mein komplettes Programm mit der Stelle markiert, wo ich nicht mehr weiter komme...
1. Ich habe da zum einen eine DLL :
<I>library MouseHook;
uses
SysUtils,
Classes,
Windows,
Messages;
const
CM_HOOK = WM_USER + $1000;
var
MyMouseHook: HHook;
TargetHandle: THandle;
TargetPointer: ^Integer;
function MouseHookEvent(Code: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
begin
if Code = HC_ACTION then
begin
TargetHandle := OpenFileMapping(FILE_MAP_READ, False, 'MouseHookUser');
if TargetHandle <> 0 then
begin
TargetPointer := MapViewOfFile(TargetHandle, FILE_MAP_READ, 0, 0, 0);
PostMessage(TargetPointer^, CM_HOOK, wParam, lParam);
UnmapViewOfFile(TargetPointer);
CloseHandle(TargetHandle);
end;
end;
Result := CallNextHookEx(MyMouseHook, Code, wParam, lParam);
end;
procedure HookOn; stdcall;
begin
MyMouseHook := SetWindowsHookEx(WH_MOUSE, @MouseHookEvent, HInstance, 0);
end;
procedure HookOff; stdcall;
begin
UnhookWindowsHookEx(MyMouseHook);
end;
exports
HookOn, HookOff;
begin
end.</I>
Ich will Windowsweit die Koordinaten aller Klicks mit der linken bzw rechten (getrennt behandelt) Maustaste durch mein Programm in einer Datei speichern lassen.
Ich hab so ne Ahnung wie das über einen Hook geht -> komme aber dann mit der Auswertung der Daten nicht klar...
Im folgenden ist mein komplettes Programm mit der Stelle markiert, wo ich nicht mehr weiter komme...
1. Ich habe da zum einen eine DLL :
<I>library MouseHook;
uses
SysUtils,
Classes,
Windows,
Messages;
const
CM_HOOK = WM_USER + $1000;
var
MyMouseHook: HHook;
TargetHandle: THandle;
TargetPointer: ^Integer;
function MouseHookEvent(Code: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
begin
if Code = HC_ACTION then
begin
TargetHandle := OpenFileMapping(FILE_MAP_READ, False, 'MouseHookUser');
if TargetHandle <> 0 then
begin
TargetPointer := MapViewOfFile(TargetHandle, FILE_MAP_READ, 0, 0, 0);
PostMessage(TargetPointer^, CM_HOOK, wParam, lParam);
UnmapViewOfFile(TargetPointer);
CloseHandle(TargetHandle);
end;
end;
Result := CallNextHookEx(MyMouseHook, Code, wParam, lParam);
end;
procedure HookOn; stdcall;
begin
MyMouseHook := SetWindowsHookEx(WH_MOUSE, @MouseHookEvent, HInstance, 0);
end;
procedure HookOff; stdcall;
begin
UnhookWindowsHookEx(MyMouseHook);
end;
exports
HookOn, HookOff;
begin
end.</I>
Comment