码迷,mamicode.com
首页 > Windows程序 > 详细

C#下查找并杀死子进程(进程树)

时间:2015-06-04 11:33:21      阅读:422      评论:0      收藏:0      [点我收藏+]

标签:

参考:如何杀死进程及子进程

/**
 * 传入参数:父进程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了

C#下查找并杀死子进程(进程树)

标签:

原文地址:http://www.cnblogs.com/tommy-huang/p/4551084.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!