2
使用C#,我如何獲得當前機器上所有正在運行的進程的列表,包括映像名稱,描述和進程ID?我追蹤的是類似於在任務管理器「進程」選項卡下看到的內容,但沒有資源信息。如何在C#中返回一個Windows進程列表?
使用C#,我如何獲得當前機器上所有正在運行的進程的列表,包括映像名稱,描述和進程ID?我追蹤的是類似於在任務管理器「進程」選項卡下看到的內容,但沒有資源信息。如何在C#中返回一個Windows進程列表?
您需要使用提供的實用程序中的診斷包來完成。我發現這個代碼,它工作正常。
此行正是檢索過程。您可以提取每個進程的屬性。
`Process [] allProcs = Process.GetProcesses();
完整的代碼如下所示。按需定製「
using System;
using System.Diagnostics;
public class ListProcs
{
public static void Main()
{
int totMemory = 0;
Console.WriteLine("Info for all processes:");
Process[] allProcs = Process.GetProcesses();
foreach(Process thisProc in allProcs)
{
string procName = thisProc.ProcessName;
DateTime started = thisProc.StartTime;
int procID = thisProc.Id;
int memory = thisProc.VirtualMemorySize;
int priMemory = thisProc.PrivateMemorySize;
int physMemory = thisProc.WorkingSet;
totMemory += physMemory;
int priority = thisProc.BasePriority;
TimeSpan cpuTime = thisProc.TotalProcessorTime;
Console.WriteLine("Process: {0}, ID: {1}", procName, procID);
Console.WriteLine(" started: {0}", started.ToString());
Console.WriteLine(" CPU time: {0}", cpuTime.ToString());
Console.WriteLine(" virtual memory: {0}", memory);
Console.WriteLine(" private memory: {0}", priMemory);
Console.WriteLine(" physical memory: {0}", physMemory);
}
Console.WriteLine("\nTotal physical memory used: {0}", totMemory);
}
}
參考原始article。