C# 查找、结束进程 - 通过进程名精确、模糊查找、结束进程

  1 /// <summary>
  2         /// 根据“精确进程名”结束进程
  3         /// </summary>
  4         /// <param name="strProcName">精确进程名</param>
  5         public void KillProc(string strProcName)
  6         {
  7             try
  8             {
  9                 //精确进程名  用GetProcessesByName
 10                 foreach (Process p in Process.GetProcessesByName(strProcName))
 11                 {
 12                     if (!p.CloseMainWindow())
 13                     {
 14                         p.Kill();
 15                     }
 16                 }
 17             }
 18             catch
 19             {
 20 
 21             }
 22         }
 23         /// <summary>
 24         /// 根据 模糊进程名 结束进程
 25         /// </summary>
 26         /// <param name="strProcName">模糊进程名</param>
 27         public void KillProcA(string strProcName)
 28         {
 29             try
 30             {
 31                 //模糊进程名  枚举
 32                 //Process[] ps = Process.GetProcesses();  //进程集合
 33                 foreach (Process p in Process.GetProcesses())
 34                 {
 35                     Console.WriteLine(p.ProcessName + p.Id);
 36 
 37                     if (p.ProcessName.IndexOf(strProcName) > -1)  //第一个字符匹配的话为0,这与VB不同
 38                     {
 39                         if (!p.CloseMainWindow())
 40                         {
 41                             p.Kill();
 42                         }
 43                     }
 44                 }
 45             }
 46             catch
 47             {
 48 
 49             }
 50         }
 51 
 52 
 53         /// <summary>
 54         /// 判断是否包含此字串的进程   模糊
 55         /// </summary>
 56         /// <param name="strProcName">进程字符串</param>
 57         /// <returns>是否包含</returns>
 58         public bool SearchProcA(string strProcName)
 59         {
 60             try
 61             {
 62                 //模糊进程名  枚举
 63                 //Process[] ps = Process.GetProcesses();  //进程集合
 64                 foreach (Process p in Process.GetProcesses())
 65                 {
 66                     Console.WriteLine(p.ProcessName + p.Id);
 67 
 68                     if (p.ProcessName.IndexOf(strProcName) > -1)  //第一个字符匹配的话为0,这与VB不同
 69                     {
 70                         return true;
 71                     }
 72                 }
 73                 return false;
 74             }
 75             catch
 76             {
 77                 return false;
 78             }
 79         }
 80 
 81 
 82         /// <summary>
 83         /// 判断是否存在进程  精确
 84         /// </summary>
 85         /// <param name="strProcName">精确进程名</param>
 86         /// <returns>是否包含</returns>
 87         public bool SearchProc(string strProcName)
 88         {
 89             try
 90             {
 91                 //精确进程名  用GetProcessesByName
 92                 Process[] ps = Process.GetProcessesByName(strProcName);
 93                 if (ps.Length > 0)
 94                 {
 95                     return true;
 96                 }
 97                 else
 98                 {
 99                     return false;
100                 }
101             }
102             catch
103             {
104                 return false;
105             }
106         }

直接调用方法,如下所示:

1     string strProcName = "QQ";
2     KillProcA(strProcName);

转自:http://blog.csdn.net/xrongzhen/article/details/5838690