http://www.cnblogs.com/dzone/archive/2011/09/28/2194909.html
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Diagnostics;using System.Threading; namespace ProcessExample { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void buttonStart_Click(object sender, EventArgs e) { process1.StartInfo.FileName = "notepad.exe"; //启动Notepad.exe进程. process1.Start(); } private void buttonStop_Click(object sender, EventArgs e) { //创建新的Process组件的数组,并将它们与指定的进程名称(Notepad)的所有进程资源相关联. Process[] myprocesses; myprocesses = Process.GetProcessesByName("Notepad"); foreach (Process instance in myprocesses) { //设置终止当前线程前等待1000毫秒 instance.WaitForExit(1000); instance.CloseMainWindow(); } } private void buttonView_Click(object sender, EventArgs e) { listBox1.Items.Clear(); //创建Process类型的数组,并将它们与系统内所有进程相关联 Process[] processes; processes = Process.GetProcesses(); foreach (Process p in processes) { //Idle指显示CPU空闲率的进程名称 //由于访问Idle的StartTime会出现异常,所以将其排除在外 if (p.ProcessName != "Idle") { //将每个进程名和进程开始时间加入listBox1中 this.listBox1.Items.Add( string.Format("{0,-30}{1:h:m:s}", p.ProcessName, p.StartTime)); } } } } }