首页 > 解决方案 > 检查 GUI 应用程序是否正在运行(并且响应)

问题描述

我想检查一个应用程序(WinForms GUI 应用程序)是否正在运行。目前我使用这个代码:

bool isRunning = Process.GetProcessesByName("SomeApp.exe").Any();

该解决方案有一个主要问题:当应用程序崩溃时,例如由于缺少 DLL,会弹出通常的 Windows 错误消息“Application Bla stop working...”。虽然显示了此消息框,但该过程仍然存在,并且我的代码返回 true。

有没有其他方法可以检查应用程序是否真正响应(例如,通过向窗口发送一些消息并等待响应)?

标签: c#.netwindows

解决方案


Process 类公开了一个名为Responding( 1 ) 的属性。它尝试与 UI 联系,如果它没有立即响应,那么它将返回并false指示 UI 当前没有响应。


推荐阅读