.NET如何检查Windows进程是否作为" App"或作为"背景应用程序"

时间:2016-09-26 16:47:33

标签: c# .net vb.net system.diagnostics

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

我的最终目标是计算加载应用程序所需的时间。当应用程序仍在加载时,它会出现在"后台进程"中。但是,一旦加载,它就会显示在" Apps"中。这将是我对应用程序整理加载的标准。

我正在使用System.Diagnostics.Process对象来尝试实现此目的。但是,我正在努力想出一种方法来区分"背景流程"以及" Apps"。

下的流程

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

3 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:1)

通常,如果进程是“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
    }
}

答案 2 :(得分:0)

服务通常也由SYSTEM用户创建 - 列"用户名"在任务经理。