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);