zoukankan      html  css  js  c++  java
  • C#下查找并杀死子进程(进程树)

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

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

  • 相关阅读:
    ubuntu老版本下载地址
    Device Tree
    内存映射与访问机制
    makefile要点
    lds文件
    测试风险问题探讨
    2 Player and N Coin
    google maps v3 添加自定义图标(marker,overlay)
    Evatech 机器人修剪器
    受蚂蚁启发的四足机器人链接在一起克服障碍
  • 原文地址:https://www.cnblogs.com/tommy-huang/p/4551084.html
Copyright © 2011-2022 走看看