命名空间: System.Management
程序集: System.Management(System.Management.dll 中)
/// <summary>
/// 结束进程树
/// </summary>
/// <param name="myProcessId">进程ID</param>
public static void KillProcessAndChildren(int myProcessId)
{
ManagementObjectSearcher moSearcher = new ManagementObjectSearcher("Select * From Win32_Process Where ParentProcessID=" + myProcessId);
ManagementObjectCollection moCollection = moSearcher.Get();
foreach (ManagementObject mo in moCollection)
{
KillProcessAndChildren(Convert.ToInt32(mo["ProcessID"]));
}
try
{
Process process = Process.GetProcessById(myProcessId);
Console.WriteLine(myProcessId);
process.Kill();
}
catch (ArgumentException ae)
{
throw ae;
}
}
参考:
http://www.cnblogs.com/chengulv/archive/2012/12/29/2839303.html
https://msdn.microsoft.com/zh-cn/library/system.management.managementobjectsearcher(v=vs.110).aspx