3

私は自動化プログラムに取り組んでいます。WaitForInputIdle関数は、ターゲット アプリのウィンドウの初期化がいつ完了したかを判断するのに役立ちます。問題は、私の場合、最初のウィンドウでのみ機能することです。これWaitForInputIdleが、一度だけ機能する方法です。

の機能をWaitForInputIdle別の方法で実装して、ターゲット プロセスがビジーになるたびに呼び出すことができ、それが完了するまで待機することはできますか?

ダミーのメッセージを投稿することも考えましたが、いつキューから削除されたかを知る方法はないと思います。

編集:私は何か、うまくいくように見える醜くてハッキーな解決策を思いつきました:

RECT rc;

if(!GetUpdateRect(hWnd, &rc, FALSE))
{
    rc.left = rc.top = 0;
    rc.right = rc.bottom = 1;
    InvalidateRect(hWnd, &rc, FALSE);
}

do {
    Sleep(100);
} while(GetUpdateRect(hWnd, &rc, FALSE));

それよりも良いものがあることを本当に願っています。

4

1 に答える 1