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