C# .NET如何检查Windows进程是否以“运行”;App";或作为一个;背景应用程序“;
在Windows 8.1上,进入任务管理器并检查进程列表,有两个列表: -一个用于“应用程序”,即可见的前台应用程序 -一个用于“后台进程”,即在后台运行的进程 我的最终目标是计算应用程序加载所需的时间。当应用程序仍在加载时,它会出现在“后台进程”中。但是,一旦加载,它就会出现在“应用程序”中。这将是我关于什么构成应用程序完成加载的标准 我正在使用System.Diagnostics.Process对象来尝试完成此操作。然而,我正在努力找到一种方法来区分“后台进程”下的进程和“应用程序”下的进程C# .NET如何检查Windows进程是否以“运行”;App";或作为一个;背景应用程序“;,c#,.net,vb.net,system.diagnostics,C#,.net,Vb.net,System.diagnostics,在Windows 8.1上,进入任务管理器并检查进程列表,有两个列表: -一个用于“应用程序”,即可见的前台应用程序 -一个用于“后台进程”,即在后台运行的进程 我的最终目标是计算应用程序加载所需的时间。当应用程序仍在加载时,它会出现在“后台进程”中。但是,一旦加载,它就会出现在“应用程序”中。这将是我关于什么构成应用程序完成加载的标准 我正在使用System.Diagnostics.Process对象来尝试完成此操作。然而,我正在努力找到一种方法来区分“后台进程”下的进程和“应用程序”下的进程
有人知道如何区分这一点吗?我查看了MSDN并尝试了不同的方法,但都没有成功。当进程没有UI时,属性为零(即后台进程)。服务通常也由系统用户创建,即任务管理器中的“用户名”列。通常,如果进程是“应用程序”,它应该有自己的窗口名称,否则,它就是一个“后台应用程序”。因此,代码应如下所示:
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
}
}
一个背景猜测,但也许后台应用程序没有窗口句柄或主窗口标题?“对于隐藏的进程,也就是在任务栏中不可见的进程,值也是零。这可能是在任务栏最右边的通知区域中出现图标的过程。”@启动任务管理器这些应用程序标记为“后台进程”。@stuartd:没错。这些服务可通过ServiceController.GetServices()获得-