參考:如何殺死進程及子進程
/**
* 傳入參數:父進程id
* 功能:根據父進程id,殺死與之相關的進程樹
*/
public static void KillProcessAndChildren(int pid)
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("Select * From Win32_Process Where ParentProcessID=" + pid);
ManagementObjectCollection moc = searcher.Get();
foreach (ManagementObject mo in moc)
{
KillProcessAndChildren(Convert.ToInt32(mo["ProcessID"]));
}
try
{
Process proc = Process.GetProcessById(pid);
Console.WriteLine(pid);
proc.Kill();
}
catch (ArgumentException)
{
/* process already exited */
}
}
常用的Process方法:
//1.根據進程id,獲得進程
Process p = Process.GetProcessById(100);
//2.獲取當前進程
Process p = Process.GetCurrentProcess();
//3.根據進程名字獲取進程,返回的結果是一個數組
Process p = (Process.GetProcessesByName("DriverEasy"))[0];
特別聲明:因為代碼中使用到了 ManagementObjectSearcher,如果在Visual Studio中即使引入了
命名空間,還是提示無法找到相應的類的話,那么按下面說的來做,
第一步:在項目上鼠標右鍵 -> add -> Reference

第二步:找到 System.Management,把它前面的勾打上

OK了
