Hallo !
Hier ist der Code einer einfachen Library, die zum Aufbau eines globalen Keyhooks eingesetzt wird.
library Keyhook;
uses
Windows;
var
HookHandle: Cardinal = 0;
WindowHandle: Cardinal = 0;
function KeyboardProc(nCode: Integer; wParam: LongInt; lParam: LongInt): LongInt; stdcall;
begin
Result := CallNextHookEx(WH_KEYBOARD, ncode, wParam, lParam);
if (nCode < 0) then Exit;
if (HiByte(GetKeyState(VK_LWIN)) = 255) or (HiByte(GetKeyState(VK_RWIN)) = 255) then
begin
// Was muss hier stehen ?
end;
end;
procedure InstallHook(Hwnd: Cardinal); stdcall;
begin
if (HookHandle = 0) then
begin
HookHandle := SetWindowsHookEx(WH_KEYBOARD, @KeyboardProc, HInstance, 0);
WindowHandle := Hwnd;
end;
end;
procedure UninstallHook; stdcall;
begin
UnhookWindowsHookEx(HookHandle);
HookHandle := 0;
end;
exports
InstallHook, UninstallHook;
end.
Anstelle von "// Was muss hier stehen ?" brauche ich einen Code-Vorschlag, der entweder alle Messages der Windows Tastatur-Message-Queue löscht, oder nur die Windows-Keys irgendwie blockt, oder einen Vorschlag, wie es ganz anders als mit meinem Code-Beispiel gehen könnte. Ich wäre sehr dankbar für Eure Vorschläge.
Philipp