我似乎无法find一种方法来确定一个Process是否有一个用户界面,例如一个窗口,这是用户可见的?
Environment.UserInteractive对外部进程没有用处
process.MainWindowHandle != IntPtr.Zero似乎总是在我的testing中返回false?
我想区分说Notepad和conhost
如何访问Windows中的特殊目录?
如何在Windows CE设备上安装.Net Compact Framework
全系统持久性存储?
如何debugging挂起的WPF应用程序?
从Process实例中找出进程ID。
用EnumWindows枚举顶级窗口。
调用GetwindowThreadProcessId并查看它是否匹配目标PID。
调用IsWindowVisible和/或IsIconic来测试该窗口是否对用户可见。
有关System.Diagnostics.Process.MainWindowHandle的MSDN文章声明如下
如果你刚开始一个进程并想使用它的主窗口句柄,可以考虑使用WaitForInputIdle方法来让进程完成启动,确保主窗口句柄已经被创建。 否则,将抛出异常。
他们暗示的是,在调用MainWindowHandle之后, Window可能需要几秒钟的时间才能显示,即使您可以清楚地看到一个Window ,也会返回IntPtr.Zero 。
请参阅https://msdn.microsoft.com/en-us/library/system.diagnostics.process.mainwindowhandle(v=vs.110).aspx以供参考
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。