杀掉系统进程之前首先要知道进程名称(说了句废话),这里要注意在任务管理器中的进程名称不一定是真实的名称。打个比方,我们开启一个"记事本",任务管理器中进程名称为"记事本",但是实际名为"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");