一尘不染

如何列出Windows中运行的所有进程?

c#

我想找到一种遍历所有活动进程并对它们进行诊断检查(内存使用,CPU时间等)的方法,类似于任务管理器。

该问题分为两部分:

  1. 找到所有过程
  2. 查找有关它们的诊断属性

我什至不确定要在哪个命名空间中查找它。任何帮助/提示/链接都将不胜感激。


阅读 337

收藏
2020-05-19

共1个答案

一尘不染

查找所有过程

您可以通过Process类来完成此操作

using System.Diagnostics;
...
var allProcesses = Process.GetProcesses();

运行诊断

您能在这里给我们更多信息吗?目前尚不清楚您想做什么。

尽管Process类可以提供一些信息,但可能会对您有所帮助。可以查询此类

  • 所有线程
  • 主窗把手
  • 所有加载的模块
  • 有关内存的各种诊断信息(分页,虚拟,工作集等)
  • 基本过程信息(ID,名称,磁盘位置)

编辑

OP提到他们想获取内存和CPU信息。这些属性在Process类上很容易获得(由GetProcesses()返回)。下面是MSDN页面,其中列出了所有受支持的属性。有各种可用的内存和CPU可以满足您的需求。

http://msdn.microsoft.com/zh-
CN/library/system.diagnostics.process.aspx

码:

将此行添加到您的使用列表:

using System.Diagnostics;

现在,您可以使用Process.GetProcesses()方法获取进程列表,如以下示例所示:

Process[] processlist = Process.GetProcesses();

foreach (Process theprocess in processlist)
{
    Console.WriteLine("Process: {0} ID: {1}", theprocess.ProcessName, theprocess.Id);
}
2020-05-19