我正在开发一个自动化程序,该WaitForInputIdle
功能可以帮助我确定目标应用程序的窗口何时完成初始化。问题是,在我的情况下,它只适用于第一个窗口 - 这就是WaitForInputIdle
工作方式,只有一次。
是否可以以不同的方式实现该功能,WaitForInputIdle
以便每次目标进程忙时都可以调用它,并等到它完成?
我考虑过发布一条虚拟消息,但我认为没有办法找出它何时从队列中删除。
编辑:我想出了一些东西,一个看起来很有效的丑陋和hacky解决方案:
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));
我真的希望有比这更好的东西。