SendMessageTimeoutW-Funktion (winuser.h)
Sendet die angegebene Nachricht an ein oder mehrere Fenster.
Syntax
LRESULT SendMessageTimeoutW(
[in] HWND hWnd,
[in] UINT Msg,
[in] WPARAM wParam,
[in] LPARAM lParam,
[in] UINT fuFlags,
[in] UINT uTimeout,
[out, optional] PDWORD_PTR lpdwResult
);
Parameter
[in] hWnd
Typ: HWND
Ein Handle für das Fenster, dessen Fensterprozedur die Nachricht empfängt.
Wenn dieser Parameter HWND_BROADCAST ((HWND)0xffff) ist, wird die Meldung an alle Fenster der obersten Ebene im System gesendet, einschließlich deaktivierter oder unsichtbarer fenster ohne Besitzer. Die Funktion wird erst zurückgegeben, wenn für jedes Fenster ein Timeout aufgetreten ist. Daher kann die Gesamtwartezeit bis zum Wert von uTimeout multipliziert mit der Anzahl der Fenster der obersten Ebene betragen.
[in] Msg
Typ: UINT
Die zu sendende Nachricht.
Listen der vom System bereitgestellten Nachrichten finden Sie unter Systemdefinierte Nachrichten.
[in] wParam
Typ: WPARAM
Alle zusätzlichen nachrichtenspezifischen Informationen.
[in] lParam
Typ: LPARAM
Alle zusätzlichen nachrichtenspezifischen Informationen.
[in] fuFlags
Typ: UINT
Das Verhalten dieser Funktion. Dieser Parameter kann einen oder mehrere der folgenden Werte aufweisen.
[in] uTimeout
Typ: UINT
Die Dauer des Timeoutzeitraums in Millisekunden. Wenn es sich bei der Nachricht um eine Broadcastnachricht handelt, kann jedes Fenster den vollständigen Timeoutzeitraum verwenden. Wenn Sie beispielsweise einen Timeoutzeitraum von fünf Sekunden angeben und es drei Fenster der obersten Ebene gibt, die die Nachricht nicht verarbeiten können, kann es zu einer Verzögerung von bis zu 15 Sekunden kommen.
[out, optional] lpdwResult
Typ: PDWORD_PTR
Das Ergebnis der Nachrichtenverarbeitung. Der Wert dieses Parameters hängt von der angegebenen Meldung ab.
Rückgabewert
Typ: LRESULT
Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null. SendMessageTimeout stellt keine Informationen zu einem Timeout einzelner Fenster bereit, wenn HWND_BROADCAST verwendet wird.
Wenn für die Funktion ein Fehler auftritt oder ein Zeitüberschreitung auftritt, ist der Rückgabewert 0. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf. Wenn GetLastErrorERROR_TIMEOUT zurückgibt, ist für die Funktion ein Timeout ausgelöst.
Windows 2000: Wenn GetLastError 0 zurückgibt, ist für die Funktion ein Timeout festgelegt.
Hinweise
Die Funktion ruft die Fensterprozedur für das angegebene Fenster auf und gibt, wenn das angegebene Fenster zu einem anderen Thread gehört, erst zurück, wenn die Fensterprozedur die Nachricht verarbeitet hat oder der angegebene Timeoutzeitraum abgelaufen ist. Wenn das Fenster, in dem die Nachricht empfangen wird, zur gleichen Warteschlange gehört wie der aktuelle Thread, wird die Fensterprozedur direkt aufgerufen. Der Timeoutwert wird ignoriert.
Diese Funktion berücksichtigt, dass ein Thread nicht reagiert, wenn er nicht innerhalb von fünf Sekunden GetMessage oder eine ähnliche Funktion aufgerufen hat.
Das System führt nur Marshalling für Systemmeldungen durch (die im Bereich von 0 bis (WM_USER-1)). Um andere Nachrichten (diese >= WM_USER) an einen anderen Prozess zu senden, müssen Sie benutzerdefiniertes Marshalling durchführen.
Hinweis
Der winuser.h-Header definiert SendMessageTimeout als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht Codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.
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 (windows.h einschließen) |
Bibliothek | User32.lib |
DLL | User32.dll |
APIs | ext-ms-win-ntuser-message-l1-1-0 (eingeführt in Windows 8) |
Siehe auch
Konzept
Nachrichten und Nachrichtenwarteschlangen
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