c# - 检查 GUI 应用程序是否正在运行(并且响应)
问题描述
我想检查一个应用程序(WinForms GUI 应用程序)是否正在运行。目前我使用这个代码:
bool isRunning = Process.GetProcessesByName("SomeApp.exe").Any();
该解决方案有一个主要问题:当应用程序崩溃时,例如由于缺少 DLL,会弹出通常的 Windows 错误消息“Application Bla stop working...”。虽然显示了此消息框,但该过程仍然存在,并且我的代码返回 true。
有没有其他方法可以检查应用程序是否真正响应(例如,通过向窗口发送一些消息并等待响应)?
解决方案
Process 类公开了一个名为Responding
( 1 ) 的属性。它尝试与 UI 联系,如果它没有立即响应,那么它将返回并false
指示 UI 当前没有响应。
推荐阅读
- css - 在 Ionic 5 标签应用程序中的标签之间切换时图像的奇怪行为
- button - 如何对齐 extjs 中的分段按钮?
- python - 在 pytorch 中获取 LSTM 的内部隐藏状态
- react-native - 如何在 React-Native 上设置第一个初始页面
- r - 为什么输入值不被函数拾取
- mysql - 我试图在其他列之前放置一个列,并且应用程序说是错误的
- php - 如何从这个数组中获取两个值
- node.js - 我正在尝试获取执行 2 个命令之间的时间差,一个是 !on,另一个是 !off (Discord.JS))
- rest - Dropwizard 休息应用程序。如何仅查看我的自定义指标
- jqgrid - jqgrid多选不显示分页中的选定行