5
Windows Automation을 사용하여 UI를 테스트하고 프로세스를 열고 닫는 중입니다. 유효한 WindowHandle을 갖고 싶지만, Process.WaitForInputIdle()은 충분히 오래 기다리지 않습니다. 해결 방법이 있지만 WaitForInputIdle()이 작동하지 않는 이유를 이해할 수 없습니다.Process.WaitForInputIdle()이 작동하지 않는 이유는 무엇입니까?
자신의 의견에 Chaser324에서 언급 한 바와 같이Process = new Process
{
StartInfo =
{
WorkingDirectory = directory,
FileName = EXECUTABLE_FILE_NAME
}
};
Process.Start();
//Process.WaitForInputIdle() doesn't work,
//so will use a while loop until MainWindowHandle isn't IntPtr.Zero anymore,
//or until 10 seconds have elapsed
int count = 0;
while (Process.MainWindowHandle == IntPtr.Zero && count<100)
{
count++;
Thread.Sleep(100);
}
AppElement = AutomationElement.FromHandle(Process.MainWindowHandle);
질문 [여기] (http://stackoverflow.com/questions/3247125/wait-for-wpf-app-to-load-after-starting-with-process-start)와 비슷한 것으로 보입니다. 어떤 시점에서 Process.Refresh()를 호출해야 할 수도 있습니다. – Chaser324