C# – 通过其名称的一部分来杀死进程

我在C#中搜索如何做到这一点,像这样:

foreach (Process proc in Process.GetProcessesByName("cheatengine-x86_64")) { proc.Kill(); } 

我正在使用这个声明,但是有不同版本的程序,比如cheatengine或cheatengine-x86,我想关闭其中任何一个,从名称’cheat’开始,或者只是’cheate’,只是为了避免旧版本。

 System.Diagnostics.Process.GetProcesses() .Where(x => x.ProcessName.ToLower() .StartsWith("cheate")) .ToList() .ForEach(x => x.Kill()); 

您可以遍历每个进程名称,然后将其与正则表达式匹配,然后在匹配时将其终止。

 Regex regex = new Regex(@"cheate.*"); foreach (Process p in Process.GetProcesses(".")){ if(regex.Matches(p.ProcessName)) p.Kill(); } 

这样的事情。

这样做的好处是,您可以终止以特定正则表达式开头或结尾的任何进程。

使用Process.GetProcesses()并使用Linq过滤要杀死的那些。

改编自: http : //www.howtogeek.com/howto/programming/get-a-list-of-running-processes-in-c/

 using System.Diagnostics; Process[] processlist = Process.GetProcesses(); foreach(Process theprocess in processlist) { if(theprocess.ProcessName.StartsWith("cheat"); theprocess.Kill(); } 

这只是一个粗略的想法,您可以使用任何您想要匹配过程的方法。 我建议忽略大小写的东西,但我会对误报非常谨慎。 如果它关闭了不应该的东西,我会对你的程序不满意。