![]() |
Lokaler Hook
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:
Mein Beispiel geht davon aus, dass sich der Code in der Anwendung befindet.
{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, ???); 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 |
Re: Lokaler Hook
Hmm, denke, ich hab die Lösung schon gefunden:
Delphi-Quellcode:
Jetzt mach ich mich mal dran, das auszutesten und einen Weg zu suchen, an den Thread von anderen Prozessen zu kommen.
GetCurrentThreadId()
[Edit] Der Vollständiglkeit halber:
Delphi-Quellcode:
Damit hat sich die Sache, tschuldigt den Thread hätte ich mir wohl sparen können.
DWORD WINAPI GetThreadId(
__in HANDLE Thread ); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz