我正在寻找如何在 C# 中执行此操作,如下所示:
foreach (Process proc in Process.GetProcessesByName("cheatengine-x86_64"))
{
proc.Kill();
}
我正在使用这个语句,但是程序有不同的版本,比如cheatengine 或cheatengine-x86,我想关闭其中的任何一个,以'cheat' 开头,或者只是'cheat',只是为了避免使用旧版本。
我正在寻找如何在 C# 中执行此操作,如下所示:
foreach (Process proc in Process.GetProcessesByName("cheatengine-x86_64"))
{
proc.Kill();
}
我正在使用这个语句,但是程序有不同的版本,比如cheatengine 或cheatengine-x86,我想关闭其中的任何一个,以'cheat' 开头,或者只是'cheat',只是为了避免使用旧版本。
System.Diagnostics.Process.GetProcesses()
.Where(x => x.ProcessName.StartsWith("cheate", StringComparison.OrdinalIgnoreCase))
.ToList()
.ForEach(x => x.Kill());
您可以遍历每个进程名称,然后将其与正则表达式匹配,如果匹配则将其终止。
Regex regex = new Regex(@"cheate.*");
foreach (Process p in Process.GetProcesses(".")){
if(regex.Matches(p.ProcessName))
p.Kill();
}
像这样的东西。
这样做的好处是,您可以终止任何以特定正则表达式开头或结尾的进程。
改编自这里: 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();
}
这只是一个粗略的想法,你可以使用任何你想匹配的方法来处理。我推荐一些忽略大小写的东西,但我会对误报非常谨慎。如果它关闭了不应该关闭的东西,我不会对你的程序感到满意。
使用Process.GetProcesses()
并使用 Linq 过滤您想要杀死的那些。
当它包含特定字符串时,这将终止该进程
System.Diagnostics.Process.GetProcesses()
.Where(x => x.ProcessName.ToLower()
.Contains("chrome"))
.ToList()
.ForEach(x => x.Kill());