下面的示例是演示了如何通过C#获取系统中所有进程的相关信息,包含名称和状态等。

using System;
using System.Diagnostics;

namespace ProcessStatus
{
    class Program
    {
        static void Main(string[] args)
        {
            Process[] processes = Process.GetProcesses();

            foreach (Process process in processes)
            {
                Console.WriteLine("Process Name: {0}, Responding: {1}", process.ProcessName, process.Responding);
            }

            Console.Write("press enter");
            Console.ReadLine();
        }
    }
}

参考链接:https://iqcode.com/code/csharp/c-copy-directory

补充说明

  • Process.GetProcesses() 返回本机全部进程;GetProcessesByName("xxx") 可按名称筛选。
  • 常用属性:Id、ProcessName、WorkingSet64(内存)、Responding(是否响应)、StartTime。
  • 读取某些系统进程的属性可能抛异常,需 try/catch 或先做判断。
  • Process 对象需 Dispose,建议用 using 释放句柄。