public void RestartPro(string ProName,string FileName)
{
System.Diagnostics.ProcessStartInfo  Info  =  new  System.Diagnostics.ProcessStartInfo();
Info.FileName = FileName;
Info.RedirectStandardOutput = true;
Info.WindowStyle = ProcessWindowStyle.Maximized;
this.process.StartInfo = Info;
Info.UseShellExecute = false;
this.process.Start();
this.process.Close();
                           process=new Process();
System.Diagnostics.Process[] pro = System.Diagnostics.Process.GetProcesses();
for(int i = 0; i < pro.Length; i++)
{
if(pro[i].ProcessName == ProName)
{
pro[i].Kill();
}
}
}

解决方案 »

  1.   

    XP下还有两个好用的工具tasklist和tskill。tasklist能列出所有的进程,和相应的信息。
            tskill能查杀进程,语法很简单:tskill 程序名!
      

  2.   

    System.Diagnostics.Process[] pro = System.Diagnostics.Process.GetProcesses();是实例化了当前所有活动的进程,当然关闭的时候要出错,如果你要关闭自身可以用GetCurrentProcess,还可以用GetProcessById或者GetProcessByName来关闭指定的进程