我需要找到一种方法来杀死使用某个图像路径的所有进程。我一直在发现,按名称杀死进程并不总是正确地杀死进程 - 因为它的开发人员无法从构建到构建保持相同的名称。
我已经做了一些挖掘,但未能找到解决方案。想知道这里是否有人可以指出我正确的方向。
答案 0 :(得分:3)
Process.GetProcesses()
.First(p => String.Compare(p.MainModule.FileName,filename,true)==0)
.Kill();
答案 1 :(得分:2)
这会杀死在特定目录中运行的所有进程
System.Diagnostics.Process.GetProcesses()
.Where(p => Path.GetDirectoryName(p.MainModule.FileName).ToLower().Equals(path.ToLower())
.ToList().ForEach(p => p.Kill());
答案 2 :(得分:1)
我相信这就是你想要的
var imagePath = @"C:\applicationfolder";
var processes = Process.GetProcesses()
.Where(p => p.MainModule.FileName.StartsWith(imagePath, true, CultureInfo.InvariantCulture));
foreach (var proc in processes)
{
proc.Kill();
}