Tag beisammen,
ich versuche, einen Keyboard Hook zu schreiben, um vordefinierte Tastenfolgen durch einen einfachen Tastendruck an die Zielanwendung zu senden. Daher soll er global sein - Also bitte nichts falsches denken :s
Der Umsetzung liegt ein Tutorial zugrunde.
Die interessanten Stellen:
Delphi-Quellcode:
var
frmMain: TfrmMain;
function KeyboardHookProc(code: Integer; wParam: Word; lParam: LongWord): LongWord;
stdcall;
Delphi-Quellcode:
function KeyboardHookProc(code: Integer; wParam: Word; lParam: LongWord): LongWord;
stdcall;
begin
if code < 0 then
begin
Result := CallNextHookEx(frmMain.hook, code, wParam, lparam);
end;
if lParam = VK_SPACE then
begin
frmMain.trayIcon.BalloonHint := 'You pressed Space!';
frmMain.trayIcon.ShowBalloonHint;
end;
Result := 0;
end;
Delphi-Quellcode:
procedure TfrmMain.Initialize;
begin
hook := SetWindowsHookEx(WH_KEYBOARD, @KeyboardHookProc, HInstance, 0);
end;
Das Problem: Der Quelltext gleicht vom Grundprinzip dem des Tutorials - der BalloonHint wird trotzdem nicht geöffnet, wenn ich Space drücke. Wo liegt denn hier der Fehler?
LG,
Frank.