现在的位置: 首页 > 综合 > 正文

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

2013年09月04日 ⁄ 综合 ⁄ 共 1360字 ⁄ 字号 评论关闭

查找进程的方法:

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

public static
bool 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);

           }

           return
true;
 }
2.通ManagementObjectSearcher 类

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

public static
bool 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
;
}

抱歉!评论已关闭.