Hallo,
Ich bin gerade dabei Hooks zu lernen. Ich verstehe zwar das Grundprinzip und schaffe es die Funktionen in einer
Dll-Datei auszulagern, aber wenn ich dann die Funktionen in einer ganz normalen Anwendung anwenden will, weiß ich nicht, wie ich das machen soll. Ich hab mir schon Beispiele von Asserbad durchgelesen, aber die sind mir noch zu komplex. Deshalb, kann mir jemand ein ganz einfaches Beispiel geben?
Hier noch der
Dll-Text:
Delphi-Quellcode:
library KeyboardHook;
uses
Windows,
Messages;
var
HookHandle: Cardinal = 0;
WindowHandle: Cardinal = 0;
function KeyboardHookProc(nCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
begin
Result := CallNextHookEx(HookHandle, nCode, wParam, lParam);
case nCode < 0 of
true: exit;
false:
begin
//erstmal ohne bearbeitung
end;
end;
end;
function InstallHook(Hwnd: Cardinal): Boolean; stdcall;
begin
Result := False;
if HookHandle = 0 then begin
HookHandle := SetWindowsHookEx(WH_KEYBOARD, @KeyboardHookProc, HInstance, 0);
WindowHandle := Hwnd;
Result := TRUE;
end;
end;
function UninstallHook: Boolean; stdcall;
begin
Result := UnhookWindowsHookEx(HookHandle);
HookHandle := 0;
end;
exports
InstallHook,
UninstallHook;
end.