質問: OpenProcess(SYNCHRONIZE, 0&, lProcessId) If hProcessHandle <> 0 Then ' アイドル状態になるまで、指定したミリ秒数待機する Call WaitForInputIdle(hProcessHandle, lMilliseconds) ' アイドル状態 Sleep 250 SendKeys "LoginID", True SendKeys "{Enter}" SendKeys "LoginPass", True SendKeys "{Enter}" SendKeys "{Enter}" ' Process のハンドルを閉じる Call CloseHandle(hProcessHandle) End If End Sub Sub test() Dim lProcessId As Long Call WaitForInputIdleProcess(lProcessId) End Sub
回答: アプリケーション自体の起動待ちは問題ないけど、そこから入力可能になるまでのラグがあるから待ちたいということですよね。 おそらく前回の質問からの継続ですよね。 送り先のテキストボックスのハンドルは取得できているはずですから、IsWindowEnabledでテキストボックスの状態を判定してみてはいかがでしょうか。 1. 親ウィンドウのハンドル取得 2. 子ウィンドウ(テキストボックス)のハンドル取得 3. IsWindowEnabledで子ウィンドウの状態取得 4. 戻り値が0の間3を繰り返す