.NET如何检查Windows进程是否作为“应用程序”运行;或作为“背景应用程序”

本文关键字:应用程序 运行 背景 是否 何检查 检查 进程 Windows NET | 更新日期: 2023-09-27 18:09:05

在Windows 8.1中,你进入任务管理器并检查进程列表,有两个列表:-一个为"应用程序",这是可见的前景应用程序-一个为"后台进程",它是在后台运行的进程

我的最终目标是计算应用程序加载所需的时间。当应用程序仍在加载时,它出现在"后台进程"中。然而,一旦加载,它就会出现在"应用程序"中。这将是我的标准,什么构成一个应用程序完成加载。

我正在使用System.Diagnostics.Process对象来尝试完成此操作。然而,我正在努力想出一种方法来区分"后台进程"下的进程和"应用"下的进程。

有人知道如何区分这个吗?我浏览了MSDN并尝试了不同的方法,但都没有成功。

.NET如何检查Windows进程是否作为“应用程序”运行;或作为“背景应用程序”

System.Diagnostics.Process.MainWindowHandle属性在进程没有UI(即后台进程)时为零

通常情况下,如果一个进程是"App",它应该有自己的窗口名,否则,它就是一个"后台应用程序"。因此代码应该如下所示:

Process[] arrProcess = Process.GetProcesses();
foreach (Process process in arrProcess)
{
    if (!string.IsNullOrEmpty(process.MainWindowTitle))
    {
    //Do something with your App
    }
    else
    {
    //Do something with your Background process
    }
}

服务通常也由SYSTEM用户-任务管理器中的" user Name"列创建。