【发布时间】:2018-03-09 21:26:56
【问题描述】:
我知道您可以使用Process[] processes = Process.GetProcesses(); 或Process[] processes = Process.GetProcessesByName("processName"); 获取当前正在运行的进程的列表
但是我需要获取当前正在运行的应用程序,不一定是特定的进程。原因是有时在后台运行的进程与某个应用程序相关,但实际应用程序本身并未运行。但出于我的目的,我需要知道实际应用程序本身是否正在运行。
有没有办法在 C# 中做到这一点?
编辑:显然我还没有说清楚。例如,在任务管理器中,您可以看到当前正在运行的应用程序列表,以及当前正在运行的进程列表。我正在尝试获取可以在任务管理器中看到的应用程序列表,而不是广泛的进程列表
【问题讨论】:
-
如果应用程序不是进程,您如何定义它?请阅读How to Ask
-
编辑希望能澄清我的意思
-
任何特定的 Windows 版本?至少在 Windows 10 中,列表并不总是正确的。例如,现在 Chrome 显然是一个应用程序(大部分时间它显示为应用程序)时,它是一个“后台进程”。我不认为 MS 会公布他们如何确定这一点
-
有趣的是它是如何特定于 Windows 版本的——这实际上有助于我稍微调试一下我的问题,谢谢。我目前正在尝试从 Windows 7 中抓取。在 Windows 10 上,抓取过程正常,但在 Windows 7 上,对于我的具体情况,我需要抓取“应用程序”