WaitForInputIdle 関数 (winuser.h)

指定されたプロセスが最初の入力の処理を完了し、入力が保留中でないユーザー入力を待機するか、タイムアウト間隔が経過するまで待機します。

構文

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

パラメーター

[in] hProcess

プロセスへのハンドル。 このプロセスがコンソール アプリケーションであるか、メッセージ キューがない場合、 WaitForInputIdle は直ちにを返します。

[in] dwMilliseconds

タイムアウト間隔 (ミリ秒単位)。 dwMilliseconds が INFINITE の場合、プロセスがアイドル状態になるまで関数は戻りません。

戻り値

次の表は、この関数で使用できる戻り値を示しています。

リターン コード/値 説明
0
待機が正常に満たされました。
WAIT_TIMEOUT
タイムアウト間隔が経過したため、待機が終了しました。
WAIT_FAILED
エラーが発生しました。

解説

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で導入)

こちらもご覧ください

CreateProcess

プロセス関数とスレッド関数

複数のスレッドの実行の同期