gpt4 book ai didi

c# MainWindowHandle 始终为零

转载 作者:行者123 更新时间:2023-11-30 19:45:36 25 4
gpt4 key购买 nike

我阅读了一些关于 MainWindowHandle 的线程,但我找不到解决我的问题的方法,我正在启动一个 gui 应用程序并希望通过进程对象获取 MainWindowHandle,但句柄值始终为零,如果我在加载 gui 之前不会等待 thread.sleep()。我也尝试过使用 WaitForInputIdle,但它根本没有帮助。

process.Start();

process.WaitForInputIdle(1000);
while (process.MainWindowHandle == IntPtr.Zero)
{
Thread.Sleep(100);
}
// do something with the handle

他永远不会离开,如果我用普通的 thread.sleep 替换 waitforinputidle,他会得到正确的句柄。

简而言之:如果我得到句柄,我只想继续我的代码!=零,但我不想为此等待静态时间

最佳答案

存储在 MainWindowHandle 中的值被缓存。在循环中添加一个 process.Refresh() 以使该值无效:

while (process.MainWindowHandle == IntPtr.Zero)
{
Thread.Sleep(100);
process.Refresh();
}

关于c# MainWindowHandle 始终为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10102526/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com