C#查找进程并杀死的方法

来源:互联网 发布:武汉育才行知小学图片 编辑:程序博客网 时间:2024/06/10 11:24

查找进程的方法:

1.通过System.Diagnostics.Process.GetProcesses()方法能够获得系统内各进程的数组

public staticbool KillProcess(string pProcessName)
{
           Process[] processes;
           processes= Process.GetProcessesByName(processName);
           if (processes.Length = 0 ) return false;
           foreach (Process p in processes)

           {
                    p.Kill();

                    //RunCmd("ntsd -c q -p " + p.Id);

           }

           returntrue;
 }
2.通ManagementObjectSearcher 类

此类是用于检索管理信息的较为常用的入口点之一。例如,它可以用于枚举系统中的所有磁盘驱动器、网络适配器、进程及更多管理对象,或者用于查询所有处于活动状态的网络连接以及暂停的服务等。在实例化之后,此类的实例可以接受在ObjectQuery 或其派生类中表示的 WMI 查询作为输入,并且还可以选择接受一个 ManagementScope(表示执行查询时所在的 WMI 命名空间)。它还可以接受EnumerationOptions 中的其他高级选项。当调用此对象的 Get 方法时,ManagementObjectSearcher 在指定的范围内执行给定的查询,并返回与ManagementObjectCollection 中的查询匹配的管理对象的集合。

public staticbool KillProcess(string pProcessName)
{
           ManagementObjectCollection objects = new ManagementObjectSearcher("SELECT * FROM Win32_Process").Get();
           foreach (ManagementObject item in objects)
           {
                      string str = item["Name"].ToString();
                      if (str.Trim().ToUpper() == pProcessName.Trim().ToUpper())
                      {
                                 string[] args =new string[] {"0" };
                                 item.InvokeMethod("Terminate", args);
                                 return true;
                      }
           }
           return false;
}

原创粉丝点击