列出C#进程以及详细信息

2026-03-29
建立一个listBox将进程名称遍历进去
  this.listBox1.Items.Clear();
  Process[] MyProcesses=Process.GetProcesses();
  foreach(Process MyProcess in MyProcesses)
  {
  this.listBox1.Items.Add(MyProcess.ProcessName);
  }
  this.listBox1.SelectedIndex=0;
  选中listBox里面的项后将进程详细信息显示在右面的Label中
  try
  {
  string ProcessName=this.listBox1.Text;
  this.groupBox1.Text=ProcessName+"进程的详细信息";
  Process[] MyProcess=Process.GetProcessesByName(ProcessName);
  this.label1.Text="进程影象名:"+MyProcess[0].ProcessName;
  this.label2.Text="进程ID:"+MyProcess[0].Id;
  this.label3.Text="启动线程树:"+MyProcess[0].Threads.Count.ToString();
  this.label4.Text="CPU占用时间:"+MyProcess[0].TotalProcessorTime.ToString();
  this.label5.Text="线程优先级:"+MyProcess[0].PriorityClass.ToString();
  this.label6.Text="启动时间:"+MyProcess[0].StartTime.ToLongTimeString();
  this.label7.Text="专用内存:"+(MyProcess[0].PrivateMemorySize/1024).ToString()+"K";
  this.label8.Text="峰值虚拟内存:"+(MyProcess[0].PeakVirtualMemorySize/1024).ToString()+"K";
  this.label9.Text="峰值分页内存:"+(MyProcess[0].PeakPagedMemorySize/1024).ToString()+"K";
  this.label10.Text="分页系统内存:"+(MyProcess[0].PagedSystemMemorySize/1024).ToString()+"K";
  this.label11.Text="分页内存:"+(MyProcess[0].PagedMemorySize/1024).ToString()+"K";
  this.label12.Text="未分页系统内存:"+(MyProcess[0].NonpagedSystemMemorySize/1024).ToString()+"K";
  this.label13.Text="物理内存:"+(MyProcess[0].WorkingSet/1024).ToString()+"K";
  this.label14.Text="虚拟内存:"+(MyProcess[0].VirtualMemorySize/1024).ToString()+"K";
  }
  catch(Exception Err)
  {
  MessageBox.Show("没有此进程,无法获取信息!","信息提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
  //不处理异常
  }