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

Spo*_*oKe 7 c#

我正在寻找如何在C#中执行此操作,如下所示:

foreach (Process proc in Process.GetProcessesByName("cheatengine-x86_64"))
{
    proc.Kill();
}
Run Code Online (Sandbox Code Playgroud)

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

J.T*_*lor 10

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

  • 绝对正确,不知道为什么我会这样做。我得回到2013年问这个问题。并警告自己未来 8 年会发生一些不好的事情。现在修好了。 (2认同)

Ani*_*nge 6

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

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

像这样的东西。

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