杀掉系统进程之前首先要知道进程名称(说了句废话),这里要注意在任务管理器中的进程名称不一定是真实的名称。打个比方,我们开启一个"记事本",任务管理器中进程名称为"记事本",但是实际名为"notepad"。如果不知道在哪里看,可以点开任务管理器中的进程右击属性查看,一般都是xxx.exe形式。
接下来我们开始写代码,可以循环取到系统中所有正在运行的进程,然后根据name和id匹配将要删除的进程,值得注意的是:开启多个"记事本"进程,name是一致的,如果根据name杀进程,那么都会被关闭掉。id是唯一的,但是每次启动"记事本"id会被随机分配。
引用:
using System.Diagnostics;
代码:
/// <summary> /// 杀掉FoxitReader进程 /// </summary> /// <param name="strProcessesByName"></param> public static void KillProcess(string processName) { foreach (Process p in Process.GetProcesses()) { if (p.ProcessName.Contains(processName)) { try { p.Kill(); p.WaitForExit(); // possibly with a timeout Console.WriteLine($"已杀掉{processName}进程!!!"); } catch (Win32Exception e) { Console.WriteLine(e.Message.ToString()); } catch (InvalidOperationException e) { Console.WriteLine(e.Message.ToString()); } } } }
调用:
KillProcess("notepad");