Hooks

Ein Hook ist ein Punkt im Systemmechanismus zur Behandlung von Nachrichten, an dem eine Anwendung eine Unterroutine installieren kann, um den Nachrichtendatenverkehr im System zu überwachen und bestimmte Arten von Nachrichten zu verarbeiten, bevor sie die Zielfensterprozedur erreichen.

In diesem Abschnitt

Name Beschreibung
Übersicht über Hooks Erläutert, wie Hooks verwendet werden sollen.
Verwenden von Hooks Veranschaulicht das Ausführen von Aufgaben, die Hooks zugeordnet sind.
Hookreferenz Enthält die API-Referenz.

Hookfunktionen

Name Beschreibung
CallMsgFilter Übergibt die angegebene Meldung und den Hookcode an die Hook-Prozeduren, die den Hook-Prozeduren WH _ SYSMSGFILTER und WH _ MSGFILTER zugeordnet sind.
CallNextHookEx Übergibt die Hookinformationen an die nächste Hookprozedur in der aktuellen Hookkette. Eine Hookprozedur kann diese Funktion entweder vor oder nach der Verarbeitung der Hookinformationen aufrufen.
CallWndProc Eine anwendungs- oder bibliotheksdefinierte Rückruffunktion, die mit der SetWindowsHookEx-Funktion verwendet wird. Das System ruft diese Funktion auf, bevor die Fensterprozedur aufgerufen wird, um eine an den Thread gesendete Nachricht zu verarbeiten.
CallWndRetProc Eine anwendungs- oder bibliotheksdefinierte Rückruffunktion, die mit der SetWindowsHookEx-Funktion verwendet wird. Das System ruft diese Funktion auf, nachdem die SendMessage-Funktion aufgerufen wurde. Die Hookprozedur kann die Nachricht untersuchen. sie kann nicht geändert werden.
CBTProc Eine anwendungs- oder bibliotheksdefinierte Rückruffunktion, die mit der SetWindowsHookEx-Funktion verwendet wird. Das System ruft diese Funktion vor dem Aktivieren, Erstellen, Zerstören, Minimieren, Maximieren, Verschieben oder Anpassen eines Fensters auf. vor dem Ausführen eines Systembefehls; vor dem Entfernen eines Maus- oder Tastaturereignisses aus der Systemnachrichtenwarteschlange; vor dem Festlegen des Tastaturfokus; oder vor der Synchronisierung mit der Systemnachrichtenwarteschlange. Eine CBT-Anwendung (Computer-Based Training, computerbasiertes Training) verwendet dieses Hookverfahren, um nützliche Benachrichtigungen vom System zu erhalten.
DebugProc Eine anwendungs- oder bibliotheksdefinierte Rückruffunktion, die mit der SetWindowsHookEx-Funktion verwendet wird. Das System ruft diese Funktion auf, bevor es die Hook-Prozeduren aufruft, die einem beliebigen Hooktyp zugeordnet sind. Das System übergibt Informationen über den hook, der aufgerufen werden soll, an die DebugProc-Hookprozedur, die die Informationen untersucht und bestimmt, ob der Hook aufgerufen werden kann.
ForegroundIdleProc Eine anwendungs- oder bibliotheksdefinierte Rückruffunktion, die mit der SetWindowsHookEx-Funktion verwendet wird. Das System ruft diese Funktion auf, wenn sich der Vordergrundthread im Leerlauf befindet.
GetMsgProc Eine anwendungs- oder bibliotheksdefinierte Rückruffunktion, die mit der SetWindowsHookEx-Funktion verwendet wird. Das System ruft diese Funktion auf, wenn die GetMessage- oder PeekMessage-Funktion eine Nachricht aus einer Anwendungsnachrichtenwarteschlange abgerufen hat. Bevor die abgerufene Nachricht an den Aufrufer zurückgibt, übergibt das System die Nachricht an die Hookprozedur.
JournalPlaybackProc Eine anwendungs- oder bibliotheksdefinierte Rückruffunktion, die mit der SetWindowsHookEx-Funktion verwendet wird. In der Regel verwendet eine Anwendung diese Funktion, um eine Reihe von Maus- und Tastaturmeldungen wiederzuspielen, die zuvor von der Hookprozedur JournalRecordProc aufgezeichnet wurden. Solange eine JournalPlaybackProc-Hookprozedur installiert ist, werden reguläre Maus- und Tastatureingaben deaktiviert.
JournalRecordProc Eine anwendungs- oder bibliotheksdefinierte Rückruffunktion, die mit der SetWindowsHookEx-Funktion verwendet wird. Die Funktion zeichnet Meldungen auf, die das System aus der Systemnachrichtenwarteschlange entfernt. Später kann eine Anwendung eine JournalPlaybackProc-Hookprozedur verwenden, um die Nachrichten wiederzuverspielen.
KeyboardProc Eine anwendungs- oder bibliotheksdefinierte Rückruffunktion, die mit der SetWindowsHookEx-Funktion verwendet wird. Das System ruft diese Funktion auf, wenn eine Anwendung die GetMessage- oder PeekMessage-Funktion aufruft und eine Tastaturnachricht (WM _ KEYUP oder WM _ KEYDOWN) verarbeitet wird.
LowLevelKeyboardProc Eine anwendungs- oder bibliotheksdefinierte Rückruffunktion, die mit der SetWindowsHookEx-Funktion verwendet wird. Das System ruft diese Funktion jedes Mal auf, wenn ein neues Tastatureingabeereignis in eine Threadeingabewarteschlange gesendet wird.
LowLevelMouseProc Eine anwendungs- oder bibliotheksdefinierte Rückruffunktion, die mit der SetWindowsHookEx-Funktion verwendet wird. Das System ruft diese Funktion jedes Mal auf, wenn ein neues Mauseingabeereignis in eine Threadeingabewarteschlange gesendet wird.
MessageProc Eine anwendungs- oder bibliotheksdefinierte Rückruffunktion, die mit der SetWindowsHookEx-Funktion verwendet wird. Das System ruft diese Funktion auf, nachdem ein Eingabeereignis in einem Dialogfeld, Meldungsfeld, Menü oder einer Bildlaufleiste auftritt, aber bevor die vom Eingabeereignis generierte Nachricht verarbeitet wird. Die Hookprozedur kann Nachrichten für ein Dialogfeld, ein Meldungsfeld, ein Menü oder eine Bildlaufleiste überwachen, die von einer bestimmten Anwendung oder allen Anwendungen erstellt wurden.
MouseProc Eine anwendungs- oder bibliotheksdefinierte Rückruffunktion, die mit der SetWindowsHookEx-Funktion verwendet wird. Das System ruft diese Funktion auf, wenn eine Anwendung die GetMessage- oder PeekMessage-Funktion aufruft und eine Mausnachricht verarbeitet werden soll.
SetWindowsHookEx Installiert eine anwendungsdefinierte Hookprozedur in einer Hookkette. Sie installieren eine Hookprozedur, um das System auf bestimmte Ereignistypen zu überwachen. Diese Ereignisse sind entweder einem bestimmten Thread oder allen Threads auf demselben Desktop wie der aufrufende Thread zugeordnet.
ShellProc Eine anwendungs- oder bibliotheksdefinierte Rückruffunktion, die mit der SetWindowsHookEx-Funktion verwendet wird. Die Funktion empfängt Benachrichtigungen über Shell-Ereignisse vom System.
SysMsgProc Eine anwendungs- oder bibliotheksdefinierte Rückruffunktion, die mit der SetWindowsHookEx-Funktion verwendet wird. Das System ruft diese Funktion auf, nachdem ein Eingabeereignis in einem Dialogfeld, Meldungsfeld, Menü oder einer Bildlaufleiste auftritt, aber bevor die vom Eingabeereignis generierte Nachricht verarbeitet wird. Die Funktion kann Nachrichten für jedes Dialogfeld, jedes Meldungsfeld, jedes Menü oder jede Scrollleiste im System überwachen.
UnhookWindowsHookEx Entfernt eine Hookprozedur, die von der SetWindowsHookEx-Funktion in einer Hookkette installiert wurde.

Hookbenachrichtigungen

Name Beschreibung
WM _ CANCEL JOURNAL Wird an eine Anwendung gesendet, wenn ein Benutzer die Journalaktivitäten der Anwendung abbricht. Die Nachricht wird mit einem NULL-Fensterhand handle gesendet.
WM _ QUEUESYNC Wird von einer CBT-Anwendung gesendet, um Benutzereingabenachrichten von anderen Nachrichten zu trennen, die über das WH _ JOURNALPLAYBACK-Verfahren gesendet werden.

Hookstrukturen

Name Beschreibung
CBT _ CREATEWND Enthält Informationen, die an die WH CBT-Hookprozedur _ CBTProc übergebenwerden, bevor ein Fenster erstellt wird.
CBTACTIVATESTRUCT Enthält Informationen, die an die WH CBT-Hookprozedur _ CBTProc übergebenwerden, bevor ein Fenster aktiviert wird.
CWPRETSTRUCT Definiert die Nachrichtenparameter, die an eine WH _ CALLWNDPROCRET-Hookprozedur CallWndRetProc übergeben werden.
CWPSTRUCT Definiert die Nachrichtenparameter, die an die WH _ CALLWNDPROC-Hookprozedur CallWndProc übergeben werden.
DEBUGHOOKINFO Enthält Debuginformationen, die an die Debughookprozedur DebugProcvon _ WH übergeben werden.
EVENTMSG Enthält Informationen zu einer Hardwarenachricht, die an die Systemnachrichtenwarteschlange gesendet wird. Diese Struktur wird verwendet, um Nachrichteninformationen für die Rückruffunktion JournalPlaybackProc zu speichern.
KBDLLHOOKSTRUCT Enthält Informationen zu einem Tastatureingabeereignis auf niedriger Ebene.
MOUSEHOOKSTRUCT Enthält Informationen zu einem Mausereignis, das an eine WH _ MOUSE Hook-Prozedur, MouseProc,übergeben wird.
MOUSEHOOKSTRUCTEX Enthält Informationen zu einem Mausereignis, das an eine WH _ MOUSE Hook-Prozedur, MouseProc,übergeben wird.
MSLLHOOKSTRUCT Enthält Informationen zu einem Mauseingabeereignis auf niedriger Ebene.

SetWinEventHook