Process.GetProcessByName在不应该返回时返回空

时间:2015-07-14 19:37:41

标签: c# process

我有这段代码:

foreach (var processToKill in Process.GetProcessesByName("explorer.exe"))
{
    processToKill.Kill();
}

但是,当我运行它时,processToKill总是返回空。 explorer.exe正在运行:

enter image description here

这是在Windows 8.1上,但也发生在Windows 7上。

2 个答案:

答案 0 :(得分:0)

没有EXPLORER.EXE。有一个没有扩展名的EXPLORER。

试试

foreach (var processToKill in Process.GetProcessesByName("explorer"))
{
    processToKill.Kill();
}

答案 1 :(得分:0)

从流程名称中删除扩展程序。

您可以尝试使用以下代码:

     Process.GetProcessesByName(Path.GetFileNameWithoutExtension("explorer.exe"));