C# 按.exe文件名终止某些进程 如何在C .net或C++中找到它们的exe文件名?< /p> < p>可以用来获取当前运行的进程,然后杀死进程。

C# 按.exe文件名终止某些进程 如何在C .net或C++中找到它们的exe文件名?< /p> < p>可以用来获取当前运行的进程,然后杀死进程。,c#,c++,process,exe,kill-process,C#,C++,Process,Exe,Kill Process,快速回答: foreach (var process in Process.GetProcessesByName("whatever")) { process.Kill(); } (将.exe从进程名中删除)我的解决方案是列出所有进程 通过过滤它们以包含我想要的进程,我可以运行方法来停止它们: var chromeDriverProcesses=Process.getprocesss()。 其中(pr=>pr.ProcessName==“chromedriver”);//没有“.exe

快速回答:

foreach (var process in Process.GetProcessesByName("whatever"))
{
    process.Kill();
}
(将.exe从进程名中删除)

我的解决方案是列出所有进程

通过过滤它们以包含我想要的进程,我可以运行方法来停止它们:

var chromeDriverProcesses=Process.getprocesss()。
其中(pr=>pr.ProcessName==“chromedriver”);//没有“.exe”
foreach(铬还原过程中的var过程)
{
process.Kill();
}

更新:

如果您希望以异步方式(使用
C#8
)执行相同操作,请查看以下内容:

conststringprocessname=“chromedriver”//没有“.exe”
wait Process.getprocesss()
.Where(pr=>pr.ProcessName==ProcessName)
.ToAsyncEnumerable()
.ForEachAsync(p=>p.Kill());
注意:使用
异步
方法并不总是意味着代码运行得更快。
它的主要好处是在执行操作时释放前台线程

public void EndTask(string taskname)
{
      string processName = taskname.Replace(".exe", "");

      foreach (Process process in Process.GetProcessesByName(processName))
      {
          process.Kill();
      }
}

//EndTask("notepad");

摘要:无论名称是否包含.exe,进程都将结束。您不需要“从进程名称中删除.exe”,它可以100%工作。

如果您有进程ID(
PID
),您可以按如下方式终止此进程:

Process processToKill = Process.GetProcessById(pid);
processToKill.Kill();

您可以杀死MS Word的特定实例

foreach (var process in Process.GetProcessesByName("WINWORD"))
{
    // Temp is a document which you need to kill.
    if (process.MainWindowTitle.Contains("Temp")) 
        process.Kill();
}

Process.getProcessByName将简化此过程。如果上述代码返回异常(32位进程无法访问64位进程的模块),该怎么办?如果上述代码返回异常(32位进程无法访问64位进程的模块),该怎么办?省去“.exe”。来自MSDN:“进程名是进程的友好名称,例如Outlook,它不包括.exe扩展名或路径”@AgainMe process.Kill()向进程发送Kill信号,进程将在任何地方停止执行。这与中断信号不同,因为进程没有机会响应和/或清除信号。该进程将不再执行,该进程使用的资源上的任何锁都将被释放。Exit()由当前正在执行的进程执行,以使用成功代码自杀,这是完全安全的。Process.Kill()不如Environment.Exit()安全。我建议使用LINQ:var procs=Process.getprocesss()。其中(pr=>pr.ProcessName.Contains(“Spotify”);是否有终止进程特定实例的选项?我的意思是,
包含(“Spotify”)
杀死
Spotify的所有实例。我想杀死
Spotify
的一个特定实例。如果您需要按部分名称杀死进程,请参阅。您可以使用包含而不是相等。有趣的是,我在这个线程中寻找杀死chromedriver的解决方案。一定是个常见问题,这里也是。但这似乎并不能解决问题。启动的初始控制台实际上是chrome.exe的一个实例,我猜您不想强制关闭所有这些实例,除非它是一个构建/测试代理simple
.Replace(“.exe”,”)
在最上面的投票答案中,可以用更少的复杂和不必要的代码来实现这一点。它的全部思想是查看使用或不使用.exe的方法,这样人们就可以看到多种处理方法。。。它不用于复制和粘贴…如果名称实际包含“.exe”例如“my.exeption.exe”,则此操作无效。或者,您可以检查最后四个字符的子字符串。。尽管对于一个名为“my.exe.exe”的名称,这同样会失败。只是指出而已。