WaitForInputIdle 関数 (winuser.h)
指定されたプロセスが最初の入力の処理を完了し、入力が保留中でないユーザー入力を待機するか、タイムアウト間隔が経過するまで待機します。
構文
DWORD WaitForInputIdle(
[in] HANDLE hProcess,
[in] DWORD dwMilliseconds
);
パラメーター
[in] hProcess
プロセスへのハンドル。 このプロセスがコンソール アプリケーションであるか、メッセージ キューがない場合、 WaitForInputIdle は直ちにを返します。
[in] dwMilliseconds
タイムアウト間隔 (ミリ秒単位)。 dwMilliseconds が INFINITE の場合、プロセスがアイドル状態になるまで関数は戻りません。
戻り値
次の表は、この関数で使用できる戻り値を示しています。
リターン コード/値 | 説明 |
---|---|
|
待機が正常に満たされました。 |
|
タイムアウト間隔が経過したため、待機が終了しました。 |
|
エラーが発生しました。 |
解説
WaitForInputIdle 関数を使用すると、指定したプロセスが初期化を完了し、入力が保留されていないユーザー入力を待機するまで、スレッドは実行を中断できます。 プロセスに複数のスレッドがある場合、 WaitForInputIdle 関数は、スレッドがアイドル状態になるとすぐにを返します。
WaitForInputIdle は、アプリケーションの起動時だけでなく、いつでも使用できます。 ただし、 WaitForInputIdle は、プロセスがアイドル状態になるまで 1 回だけ待機します。後続 の WaitForInputIdle 呼び出しでは、プロセスがアイドル状態であるかビジー状態であるかに関係なく、直ちにが返されます。
WaitForInputIdle は、親プロセスと新しく作成された子プロセスの同期に役立ちます。 親プロセスが子プロセスを作成すると、 CreateProcess 関数は、子プロセスが初期化を完了するのを待たずに を返します。 子プロセスと通信する前に、親プロセスは WaitForInputIdle 関数を使用して、子の初期化がいつ完了したかを判断できます。 たとえば、親プロセスでは、子プロセスに関連付けられているウィンドウを検索する前に 、WaitForInputIdle 関数を使用する必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | winuser.h (Windows.h を含む) |
Library | User32.lib |
[DLL] | User32.dll |
API セット | ext-ms-win-ntuser-misc-l1-1-0 (Windows 8で導入) |