C#:如何在我的 PC 上列出与任务管理器相同的工作进程不像应用程序选项卡

问题描述

我想在我的列表视图中将我电脑上的工作进程列为任务管理器(不是所有进程)。

我测试了这些样本和其中的许多样本:

How can I get list of Applications as shown in Task Manager (Not Processes) How to list all Windows Processes and their attributes (Task Manager like) with C# in WinForms

我想列出这些应用程序: My task manager

我可以在我的列表视图中列出那些: Listed proccesses in my list view

我在代码中使用了这些行:

Process[] processes = Process.GetProcesses();
        foreach (Process p in processes)
        {
            if (!String.IsNullOrEmpty(p.MainWindowTitle))
            {
                listBox1.Items.Add(p.MainWindowTitle);
            }
        }

但是这个列表就像 Nvidia Geforce Now、Groove Music 或 Microsoft Text Input Application 等。这些都没有在 Windows 任务管理器中列出。我怎样才能消除那些。

解决方法

在TaskManager中,进程以两种模式显示:

  1. 在任务栏中有图标的程序的第一种模式(更多详细信息)
List<Process> taskBarProcesses = Process.GetProcesses().
                                        Where(p => !string.IsNullOrEmpty(p.MainWindowTitle))
                                        .ToList();
  1. 任务栏中没有图标的程序(详细信息较少)
Process[] processes = Process.GetProcesses();
foreach (Process p in processes)
{
     Console.WriteLine(p.ProcessName);
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...