Einzelnen Beitrag anzeigen

Benutzerbild von rawsoul
rawsoul

Registriert seit: 29. Okt 2006
Ort: Düsseldorf
249 Beiträge
 
Delphi 2005 Personal
 
#1

Keyboard Hook, Denkfehler?

  Alt 29. Aug 2008, 12:40
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.
Frank Dumont
  Mit Zitat antworten Zitat