RegisterShellHookWindow-Funktion (winuser.h)
[Diese Funktion ist nicht für die allgemeine Verwendung vorgesehen. Sie kann in nachfolgenden Versionen von Windows geändert oder nicht verfügbar sein.]
Registriert ein angegebenes Shellfenster, um bestimmte Nachrichten für Ereignisse oder Benachrichtigungen zu empfangen, die für Shellanwendungen nützlich sind.
Bei den empfangenen Ereignismeldungen handelt es sich nur um nachrichten, die an das Shellfenster gesendet werden, das dem Desktop des angegebenen Fensters zugeordnet ist. Viele der Nachrichten sind mit denen identisch, die empfangen werden können, nachdem die SetWindowsHookEx-Funktion aufgerufen und WH_SHELL für den Hooktyp angegeben wurde. Der Unterschied zu RegisterShellHookWindow besteht darin, dass die Nachrichten über das FensterProc des angegebenen Fensters und nicht über eine Rückrufprozedur empfangen werden.
Syntax
BOOL RegisterShellHookWindow(
[in] HWND hwnd
);
Parameter
[in] hwnd
Typ: HWND
Ein Handle für das Fenster zum Registrieren von Shell-Hooknachrichten.
Rückgabewert
Typ: BOOL
TRUE , wenn die Funktion erfolgreich ist; andernfalls FALSE.
Hinweise
Wie bei normalen Fenstermeldungen identifiziert der zweite Parameter der Fensterprozedur die Nachricht als WM_SHELLHOOKMESSAGE. Für diese Shell-Hooknachrichten ist der Nachrichtenwert jedoch keine vordefinierte Konstante wie andere Nachrichten-IDs wie WM_COMMAND. Der Wert muss dynamisch mithilfe eines Aufrufs von RegisterWindowMessage abgerufen werden, wie hier gezeigt:
RegisterWindowMessage(TEXT("SHELLHOOK"));
Dies schließt die Verarbeitung dieser Nachrichten mit einer herkömmlichen Switch-Anweisung aus, die ID-Werte erfordert, die zur Kompilierzeit bekannt sind. Für die Behandlung von Shell-Hooknachrichten besteht die normale Praxis darin, eine If-Anweisung im Standardabschnitt Ihrer switch-Anweisung zu codieren und dann die Nachricht zu behandeln, wenn der Wert der Nachrichten-ID mit dem Wert übereinstimmt, der aus dem Aufruf RegisterWindowMessage abgerufen wurde.
In der folgenden Tabelle werden die wParam - und lParam-Parameterwerte beschrieben, die an die Fensterprozedur für die Shell-Hooknachrichten übergeben werden.
wParam | lParam |
---|---|
HSHELL_GETMINRECT | Ein Zeiger auf eine SHELLHOOKINFO-Struktur . |
HSHELL_WINDOWACTIVATED | Ein Handle für das aktivierte Fenster. |
HSHELL_RUDEAPPACTIVATED | Ein Handle für das aktivierte Fenster. |
HSHELL_WINDOWREPLACING | Ein Handle für das Fenster, das das Fenster der obersten Ebene ersetzt. |
HSHELL_WINDOWREPLACED | Ein Handle für das zu ersetzende Fenster. |
HSHELL_WINDOWCREATED | Ein Handle für das zu erstellende Fenster. |
HSHELL_WINDOWDESTROYED | Ein Handle für das Fenster auf oberster Ebene, das zerstört wird. |
HSHELL_ACTIVATESHELLWINDOW | Wird nicht verwendet. |
HSHELL_TASKMAN | Kann ignoriert werden. |
HSHELL_REDRAW | Ein Handle für das Fenster, das neu gezeichnet werden muss. |
HSHELL_FLASH | Ein Handle für das Fenster, das geblitzt werden muss. |
HSHELL_ENDTASK | Ein Handle für das Fenster, das zum Beenden gezwungen werden soll. |
HSHELL_APPCOMMAND | Der APPCOMMAND, der von der Anwendung oder anderen Hooks nicht behandelt wurde. Weitere Informationen finden Sie unter WM_APPCOMMAND und verwenden Sie das makro GET_APPCOMMAND_LPARAM , um diesen Parameter abzurufen. |
HSHELL_MONITORCHANGED | Ein Handle für das Fenster, das zu einem anderen Monitor verschoben wurde. |
Diese Funktion war erst unter Windows XP mit Service Pack 1 (SP1) und Windows Server 2003 in den SDK-Headern und -Bibliotheken enthalten. Wenn Sie keine Headerdatei und keine Importbibliothek für diese Funktion haben, können Sie die Funktion mit LoadLibrary und GetProcAddress aufrufen.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | winuser.h (einschließlich Windows.h) |
Bibliothek | User32.lib |
DLL | User32.dll |
Siehe auch
Konzept
Aufheben der RegistrierungShellHookWindow
Andere Ressourcen
Referenz
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für