我阅读了一些关于 MainWindowHandle 的线程,但我找不到解决问题的方法,我正在启动一个 gui 应用程序并希望通过进程对象获取 MainWindowHandle,但如果我不打算这样做,句柄值始终为零等待 thread.sleep() 直到加载 gui。我也尝试使用 WaitForInputIdle 但它根本没有帮助。
process.Start();
process.WaitForInputIdle(1000);
while (process.MainWindowHandle == IntPtr.Zero)
{
Thread.Sleep(100);
}
// do something with the handle
如果我用普通线程替换waitforinputidle,他永远不会离开。睡眠他得到了正确的句柄。
简而言之:如果我得到一个句柄,我只想继续我的代码!=零,但我不想为此等待静态时间