微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

检测外部进程是否交互式,并有任何可见的用户界面

我似乎无法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] 举报,一经查实,本站将立刻删除。

相关推荐