Freigeben über


Haken

Ein Hook ist ein Punkt im System-Nachrichtenbehandlungsmechanismus, bei dem eine Anwendung eine Unterroutine installieren kann, um den Nachrichtendatenverkehr im System zu überwachen und bestimmte Nachrichtentypen zu verarbeiten, bevor sie die Zielfensterprozedur erreichen.

In diesem Abschnitt

Name Beschreibung
Hook Overview Erläutert, wie Hooks verwendet werden sollen.
Verwenden von Hooks Veranschaulicht, wie Aufgaben ausgeführt werden, die mit Hooks verknüpft sind.
Hook Reference Enthält den API-Verweis.

Hook-Funktionen

Name Beschreibung
CallMsgFilter- Übergibt den angegebenen Nachrichten- und Hook-Code an die Hook-Prozeduren, die den WH_SYSMSGFILTER und WH_MSGFILTER Hook-Prozeduren zugeordnet sind.
CallNextHookEx- Übergibt die Hook-Informationen an das nächste Hook-Verfahren in der aktuellen Hookkette. Eine Hook-Prozedur kann diese Funktion entweder vor oder nach der Verarbeitung der Hook-Informationen aufrufen.
CallWndProc- Eine anwendungsdefinierte 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 anwendungsdefinierte oder bibliotheksdefinierte Rückruffunktion, die mit der SetWindowsHookEx--Funktion verwendet wird. Das System ruft diese Funktion auf, nachdem die SendMessage--Funktion aufgerufen wurde. Das Hook-Verfahren kann die Nachricht untersuchen; sie kann sie nicht ändern.
CBTProc- Eine anwendungsdefinierte oder bibliotheksdefinierte Rückruffunktion, die mit der SetWindowsHookEx--Funktion verwendet wird. Das System ruft diese Funktion auf, bevor ein Fenster aktiviert, erstellt, zerstört, minimiert, maximiert, bewegt oder angepasst wird; vor Abschluss eines Systembefehls; vor dem Entfernen eines Maus- oder Tastaturereignisses aus der Systemnachrichtenwarteschlange; vor dem Festlegen des Tastaturfokus; oder bevor Sie die Synchronisierung mit der Systemnachrichtenwarteschlange ausführen. Eine computerbasierte Schulungsanwendung (CBT) verwendet dieses Hook-Verfahren, um nützliche Benachrichtigungen vom System zu erhalten.
DebugProc- Eine anwendungsdefinierte oder bibliotheksdefinierte Rückruffunktion, die mit der SetWindowsHookEx--Funktion verwendet wird. Das System ruft diese Funktion auf, bevor die Hook-Prozeduren aufgerufen werden, die einem beliebigen Hooktyp zugeordnet sind. Das System übergibt Informationen zum Aufruf des Hooks an die DebugProc Hook-Prozedur, die die Informationen untersucht und bestimmt, ob der Hook aufgerufen werden soll.
ForegroundIdleProc- Eine anwendungsdefinierte oder bibliotheksdefinierte Rückruffunktion, die mit der SetWindowsHookEx--Funktion verwendet wird. Das System ruft diese Funktion immer dann auf, wenn sich der Vordergrundthread im Leerlauf befindet.
GetMsgProc- Eine anwendungsdefinierte oder bibliotheksdefinierte Rückruffunktion, die mit der SetWindowsHookEx--Funktion verwendet wird. Das System ruft diese Funktion immer dann auf, wenn die GetMessage- oder PeekMessage- funktion eine Nachricht aus einer Anwendungsnachrichtenwarteschlange abgerufen hat. Vor dem Zurückgeben der abgerufenen Nachricht an den Aufrufer übergibt das System die Nachricht an die Hook-Prozedur.
JournalPlaybackProc Eine anwendungsdefinierte 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 wiederzugeben, die zuvor vom JournalRecordProc Hook-Verfahren aufgezeichnet wurden. Solange ein JournalPlaybackProc Hook-Verfahren installiert ist, wird die normale Maus- und Tastatureingabe deaktiviert.
JournalRecordProc- Eine anwendungsdefinierte oder bibliotheksdefinierte Rückruffunktion, die mit der SetWindowsHookEx--Funktion verwendet wird. Die Funktion zeichnet Nachrichten auf, die das System aus der Systemnachrichtenwarteschlange entfernt. Später kann eine Anwendung ein JournalPlaybackProc- Hook-Verfahren verwenden, um die Nachrichten wiederzugeben.
KeyboardProc- Eine anwendungsdefinierte oder bibliotheksdefinierte Rückruffunktion, die mit der SetWindowsHookEx--Funktion verwendet wird. Das System ruft diese Funktion immer dann auf, wenn eine Anwendung die GetMessage oder PeekMessage--Funktion aufruft und eine Tastaturnachricht (WM_KEYUP oder WM_KEYDOWN) verarbeitet werden soll.
LowLevelKeyboardProc- Eine anwendungsdefinierte 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 gepostet werden soll.
LowLevelMouseProc- Eine anwendungsdefinierte 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 gepostet werden soll.
MessageProc- Eine anwendungsdefinierte 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 Bildlaufleiste auftritt, aber bevor die vom Eingabeereignis generierte Nachricht verarbeitet wird. Die Hook-Prozedur kann Nachrichten für ein Dialogfeld, ein Meldungsfeld, ein Menü oder eine Bildlaufleiste überwachen, die von einer bestimmten Anwendung oder allen Anwendungen erstellt wurde.
MouseProc- Eine anwendungsdefinierte oder bibliotheksdefinierte Rückruffunktion, die mit der SetWindowsHookEx--Funktion verwendet wird. Das System ruft diese Funktion immer dann auf, wenn eine Anwendung die GetMessage oder PeekMessage--Funktion aufruft und eine Mausnachricht verarbeitet werden soll.
SetWindowsHookEx- Installiert ein anwendungsdefiniertes Hook-Verfahren in einer Hookchain. Sie würden eine Hook-Prozedur installieren, um das System auf bestimmte Ereignistypen zu überwachen. Diese Ereignisse werden entweder einem bestimmten Thread oder allen Threads auf demselben Desktop wie der aufrufende Thread zugeordnet.
ShellProc- Eine anwendungsdefinierte oder bibliotheksdefinierte Rückruffunktion, die mit der SetWindowsHookEx--Funktion verwendet wird. Die Funktion empfängt Benachrichtigungen über Shell-Ereignisse vom System.
SysMsgProc- Eine anwendungsdefinierte 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 Bildlaufleiste auftritt, aber bevor die vom Eingabeereignis generierte Nachricht verarbeitet wird. Die Funktion kann Nachrichten für jedes Dialogfeld, Meldungsfeld, Menü oder Bildlaufleiste im System überwachen.
UnhookWindowsHookEx- Entfernt eine Hook-Prozedur, die in einer Hookchain durch die SetWindowsHookEx--Funktion installiert ist.

Hook-Benachrichtigungen

Name Beschreibung
WM_CANCELJOURNAL Veröffentlicht in einer Anwendung, wenn ein Benutzer die Journalaktivitäten der Anwendung abbricht. Die Nachricht wird mit einem NULL- Fensterhandle gepostet.
WM_QUEUESYNC Gesendet von einer CBT-Anwendung, um Benutzereingabemeldungen von anderen Nachrichten zu trennen, die über die WH_JOURNALPLAYBACK-Prozedur gesendet werden.

Hakenstrukturen

Name Beschreibung
CBT_CREATEWND Enthält Informationen, die an eine WH_CBT Hook-Prozedur übergeben werden, CBTProc, bevor ein Fenster erstellt wird.
CBTACTIVATESTRUCT Enthält Informationen, die an eine WH_CBT Hook-Prozedur übergeben werden, CBTProc-, bevor ein Fenster aktiviert wird.
CWPRETSTRUCT- Definiert die Nachrichtenparameter, die an eine WH_CALLWNDPROCRET Hook-Prozedur übergeben werden, CallWndRetProc.
CWPSTRUCT- Definiert die Nachrichtenparameter, die an eine WH_CALLWNDPROC Hook-Prozedur übergeben werden, CallWndProc.
DEBUGHOOKINFO- Enthält Debuginformationen, die an eine WH_DEBUG Hook-Prozedur übergeben werden, DebugProc-.
EVENTMSG- Enthält Informationen zu einer Hardwarenachricht, die an die Systemnachrichtenwarteschlange gesendet wird. Diese Struktur wird verwendet, um Nachrichteninformationen für die JournalPlaybackProc Rückruffunktion zu speichern.
KBDLLHOOKSTRUCT Enthält Informationen zu einem Eingabeereignis auf niedriger Ebene.
MOUSEHOOKSTRUCT- Enthält Informationen zu einem Mausereignis, das an eine WH_MOUSE Hook-Prozedur übergeben wird, MouseProc-.
MOUSEHOOKSTRUCTEX- Enthält Informationen zu einem Mausereignis, das an eine WH_MOUSE Hook-Prozedur übergeben wird, MouseProc-.
MSLLHOOKSTRUCT Enthält Informationen zu einem Low-Level-Mauseingabeereignis.

SetWinEventHook-