开发者

How to return a windows process list in C#?

Using C#, how can I get a list of all running processes on the cur开发者_运维百科rent machine, including image name, description and process id? I'm after something similar to what you would see under the task manager "Process" tab, though without the resource information.


You need to use the utilities available in the Diagnostics package to do this. I found this code and it works fine.

This line retrieves the processes exactly. You can extract the properties of each process then.

`Process[] allProcs = Process.GetProcesses();

The complete code is as follows. Customize as necessarily`

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);
  }
  }

Referencing the Original article.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜