WaitForInputIdle-Funktion (winuser.h)

Wartet, bis der angegebene Prozess die Verarbeitung der anfänglichen Eingabe abgeschlossen hat und auf Benutzereingaben ohne ausstehende Eingabe wartet oder bis das Timeoutintervall abgelaufen ist.

Syntax

DWORD WaitForInputIdle(
  [in] HANDLE hProcess,
  [in] DWORD  dwMilliseconds
);

Parameter

[in] hProcess

Ein Handle für den Prozess. Wenn es sich bei diesem Prozess um eine Konsolenanwendung handelt oder keine Nachrichtenwarteschlange vorhanden ist, wird WaitForInputIdle sofort zurückgegeben.

[in] dwMilliseconds

Das Timeoutintervall in Millisekunden. Wenn dwMilliseconds UNENDLICH ist, wird die Funktion erst zurückgegeben, wenn sich der Prozess im Leerlauf befindet.

Rückgabewert

Die folgende Tabelle zeigt die möglichen Rückgabewerte für diese Funktion.

Rückgabecode/-wert BESCHREIBUNG
0
Die Wartezeit wurde erfolgreich erfüllt.
WAIT_TIMEOUT
Die Wartezeit wurde beendet, weil das Timeoutintervall verstrichen ist.
WAIT_FAILED
Ein Fehler ist aufgetreten.

Hinweise

Die WaitForInputIdle-Funktion ermöglicht es einem Thread, seine Ausführung anzuhalten, bis der angegebene Prozess seine Initialisierung abgeschlossen hat und auf eine Benutzereingabe wartet, ohne dass eine Eingabe aussteht. Wenn der Prozess über mehrere Threads verfügt, wird die WaitForInputIdle-Funktion zurückgegeben, sobald sich ein Thread im Leerlauf befindet.

WaitForInputIdle kann jederzeit verwendet werden, nicht nur während des Anwendungsstarts. WaitForInputIdle wartet jedoch nur einmal, bis ein Prozess im Leerlauf ist. Nachfolgende WaitForInputIdle-Aufrufe geben sofort zurück, unabhängig davon, ob sich der Prozess im Leerlauf befindet oder ausgelastet ist.

WaitForInputIdle kann nützlich sein, um einen übergeordneten Prozess und einen neu erstellten untergeordneten Prozess zu synchronisieren. Wenn ein übergeordneter Prozess einen untergeordneten Prozess erstellt, wird die CreateProcess-Funktion zurückgegeben, ohne darauf zu warten, dass der untergeordnete Prozess seine Initialisierung abgeschlossen hat. Bevor er versucht, mit dem untergeordneten Prozess zu kommunizieren, kann der übergeordnete Prozess die WaitForInputIdle-Funktion verwenden, um zu bestimmen, wann die Initialisierung des untergeordneten Elements abgeschlossen wurde. Beispielsweise sollte der übergeordnete Prozess die WaitForInputIdle-Funktion verwenden, bevor versucht wird, ein Fenster zu finden, das dem untergeordneten Prozess zugeordnet ist.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile winuser.h (einschließlich Windows.h)
Bibliothek User32.lib
DLL User32.dll
APIs ext-ms-win-ntuser-misc-l1-1-0 (eingeführt in Windows 8)

Weitere Informationen

CreateProcess

Prozess- und Threadfunktionen

Synchronisieren der Ausführung mehrerer Threads