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

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

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