Einzelnen Beitrag anzeigen

Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#1

Hook in Klasse einbinden...

  Alt 28. Aug 2005, 12:11
Hi

ich habe folgendes Konstrukt(gekürzt):
Delphi-Quellcode:
TTastaturStatistik = class(TObject)
  //Tastatur
  private
    FOverAll: Int64;
    HookHandle: Cardinal;
    //Set-Methoden
    procedure SetKeyHits(New: Int64);
    //Hook
    procedure Hook;
    procedure UnHook;
  public
    constructor Create;
    destructor Destroy;
    //Propertys
    property KeyHits:Int64 read FOverAll write SetKeyHits;
  end;

implementation

procedure TTastaturStatistik.Hook;
//Hook aktivieren
begin
  HookHandle := SetWindowsHookEx(WH_KEYBOARD_LL, LLKeyboardHookProc, hInstance, 0); //HIER 2
  if HookHandle = 0 then RaiseLastOSError;
end;

procedure TTastaturStatistik.UnHook;
//Hook deaktivieren
begin
  if HookHandle <> 0 then
    begin
    UnhookWindowsHookEx(HookHandle);
    HookHandle := 0;
    end;
end;

function LLKeyboardHookProc(nCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
//Wenn Taste gedrückt wird
begin
  if nCode = HC_ACTION then //lParam ist richtiger Typ
    Inc(FOverAll); //HIER 1
  Result := CallNextHookEx(HookHandle, nCode, wParam, lParam);
end;
nur das geht ja nicht (HIER 1), da ich so FOverAll ja nicht ansprechen kann

wenn ich allerdings LLKeyboardHookProc als Private der Klasse deklariere, dann kommt bei HIER 2 der Fehler das LLKeyboardHookProc eine reguläre Procedure und kein Methodenzeiger sei...

hat irgendwer eine Lösung für mich?

Edit: DUDEN, hilf mir
der Code ist übrigens im wesentlichen von Flocke...
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat