Thema: Delphi Lokaler Hook

Einzelnen Beitrag anzeigen

Cyf

Registriert seit: 30. Mai 2008
407 Beiträge
 
Lazarus
 
#1

Lokaler Hook

  Alt 15. Jul 2008, 00:02
Hab mich grad mal wieder mit Hooks beschäftigt, global ist das ganze kein Problem, nur eine Sache wurmt mich grade, dürfte aber nicht sonderlich schwer sein, für einen lokalen Tasterturhook (dass das keinen Sinn macht weiß ich, soll nur ein Beispiel sein), sieht der Aufruf ja so aus:

Delphi-Quellcode:
{Hook installieren, Parameter:
  WH_KEYBOARD: Keyboardhook
  @KeyboardHookProc: Adresse der Callback Funktion, muss sich für globale
    Hooks und Hooks auf andere Prozesse in einer .dll befinden
  HInstance: Handle auf die .dll; bei lokalem Hook NULL
  Thread Identifier des Thread auf den der Hook gesetzt wird; 0: globaler Hook
}

HookHandle := SetWindowsHookEx(WH_KEYBOARD, @KeyboardHookProc,
  0, ???);
Mein Beispiel geht davon aus, dass sich der Code in der Anwendung befindet.
Die Frage ist, wie komme ich nun an die Information für den letzten Parameter?
Als Erweiterung: Wie komme ich an den letzten Parameter eines anderen bestimmten Prozesses (klar, das Ganze muss dann auf eine .dll angepasst werden)?
Ich vermute mal einfach, ich komm da über die Fensterhandles ran (wie ich die bekomme wäre mir klar), nur wie bekomme ich daraus die nötige Thread Info?

[Edit] kleiner Buchstabendreher
  Mit Zitat antworten Zitat