Ich habe keine Ahnung, wie Fensterhaken auf der "Systemebene" funktionieren. MSDN berührt nur das, was gerade passiert:
Ein Hook ist ein Punkt im Mechanismus zur Verarbeitung von Systemnachrichten, in dem ein Anwendung kann ein Unterprogramm installieren, um den Nachrichtenverkehr in zu überwachen das System und verarbeitet bestimmte Arten von Nachrichten, bevor sie das erreichen Zielfensterprozedur.
Meine beste Schätzung ist etwas wie unten:
Bevor jede Nachricht zu der Nachrichtenwarteschlange für ein Fenster hinzugefügt wird, sendet sie die Nachricht zuerst an die globalen / lokalen Hooks, was abhängig von ihren Hook-Prozeduren etwas tun kann. Nach allen globalen Hooks und lokalen Hooks wird die Nachricht schließlich zur Fensternachrichtenwarteschlange hinzugefügt.
Allerdings sagt MSDN, dass für einige Arten von Hooks events
, notifications
usw. überwacht werden.
Ein Beispiel ist der WH_MOUSE_LL
hook:
Installiert eine Hook-Prozedur, die Maus der unteren Ebene überwacht Ereignisse eingeben . Weitere Informationen finden Sie im LowLevelMouseProc-Hook Verfahren.
Wenn sie events
sagen, reden wir Fenstermeldungen oder meinen sie etwas anderes?
Bin ich falsch?
Ja, dies ist ein Mechanismus für Windows-Nachrichten, Sie können diese Daten (Nachrichten) verarbeiten, bevor sie die Zielfensterprozedur (Nachrichtenschleife) erreichen.
Wenn Sie andere Prozessfenster haken möchten, können Sie dies einfach in der DLL durchführen und die DLL-Injektion verwenden, um Ihre Bibliothek in andere Prozesse zu injizieren.
Tags und Links windows