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

Posted

技术标签:

【中文标题】C#:如何在我的 PC 上列出与任务管理器相同的工作进程(不像应用程序选项卡)【英文标题】:C#: How to list working processes on my PC same as Task manager (NOT LIKE APPLICATONS TAB) 【发布时间】:2021-05-06 13:41:04 【问题描述】:

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

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

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 文本输入应用程序等。这些没有在 Windows 任务管理器中列出。我怎样才能消除那些。

【问题讨论】:

【参考方案1】:

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

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

     Console.WriteLine(p.ProcessName);

【讨论】:

以上是关于C#:如何在我的 PC 上列出与任务管理器相同的工作进程(不像应用程序选项卡)的主要内容,如果未能解决你的问题,请参考以下文章

C# 如何正确设置 Windows 8 任务管理器的程序集标题?

如何在 TaskManager 中更改 C# WinForms exe 的图标

从任务管理器中隐藏 C# 程序?

如何区分具有相同名称的多个进程并杀死所有在 C# 中以我的 USERNAME 运行的进程?

如何防止任务管理器杀死我的 pythonw 脚本?

java 在我的 64 位机器的任务管理器中显示为 32 位