private void kill_pro(string path)
{
foreach (System.Diagnostics.Process thisproc in System.Diagnostics.Process.GetProcesses())  

try
{
if(thisproc.MainModule.FileName.ToString() == path)

thisproc.Kill(); 

}
catch
{
continue;
}

}//path 是程序的绝对路径,根据自己需要可以改成程序运行是的进程名称,但是有可能杀死重复名称的进程

解决方案 »

  1.   

    try..Process.Kill();参见MSDN:ms-help://MS.MSDNQTR.v80.chs/MS.MSDN.v80/MS.NETDEVFX.v20.chs/cpref6/html/M_System_Diagnostics_Process_Kill.htm
      

  2.   

    如果调用 Kill,则可能丢失进程编辑的数据或分配给进程的资源。Kill 导致进程不正常终止,因而只应在必要时使用。CloseMainWindow 使进程能够有序终止并关闭所有窗口,所以对于有界面的应用程序,使用它更好。如果 CloseMainWindow 失败,则可以使用 Kill 终止进程。Kill 是终止没有图形化界面的进程的唯一方法。
      

  3.   

    System.Diagnostics.ProcessStartInfo psi=new ProcessStartInfo();
    psi.UseShellExecute=true;
    psi.FileName="taskkill /im /f XXX.exe";
    System.Diagnostics.Process.Start(psi);可以这样写。把XXX.exe换成你要结束的程序名。