2

我需要找到一种方法来杀死所有使用某个图像路径的进程。我一直发现按名称杀死进程并不总是正确地杀死进程 - 因为它的开发人员无法在构建之间保持相同的名称。

我已经做了一些挖掘,但还没有找到解决方案。想知道这里是否有人可以指出我正确的方向。

4

3 回答 3

3
Process.GetProcesses()
        .First(p => String.Compare(p.MainModule.FileName,filename,true)==0)
        .Kill();
于 2013-08-08T19:11:03.477 回答
2

这将杀死在特定目录中运行的所有进程

System.Diagnostics.Process.GetProcesses()
.Where(p => Path.GetDirectoryName(p.MainModule.FileName).ToLower().Equals(path.ToLower())
.ToList().ForEach(p => p.Kill());
于 2013-08-08T19:16:57.277 回答
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();
}
于 2013-08-08T19:17:21.617 回答