自动关闭Windows资源管理器

时间:2010-03-05 14:22:57

标签: c# windows explorer

我正在尝试编写一个关闭资源管理器然后运行另一个程序的程序 我在尝试使用以下代码关闭资源管理器时遇到问题:

foreach (Process p in Process.GetProcesses())
                if (p.MainModule.ModuleName.Contains("explorer"))
                    p.Kill();  

有人可以让我知道为什么这样做并提供解决方案 CHEERS

P.S。这不是一个恶意程序,它将运行一个游戏,当探险家在后台时无法正常工作

3 个答案:

答案 0 :(得分:5)

问题是你可以在任何一个时间点运行多个版本的Explorer ...而且你通常至少需要其中一个版本。承载“开始”菜单的shell实际上是Explorer的实例。因此,如果关闭所有Explorer实例,您也将关闭主shell,这不是您想要做的。

但是,获取所有Explorer实例并将其杀死的最快方法是:

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

答案 1 :(得分:5)

有一种简单的无证方法可以干净地退出资源管理器,另请参阅问题Gracefully Exit Explorer (Programmatically)。它适用于从事shell扩展的开发人员。

Windows XP和Windows 7的步骤不同:

Windows XP: 打开关机对话框(开始>关闭),然后按CTRL-SHIFT-ALT-ESC取消对话框(或按住CTRL-SHIFT-ALT并用鼠标按下按钮)。

Windows 7: 打开“开始”菜单,然后按住CTRL-SHIFT,同时右键单击开始菜单的空白区域,请参阅screenshot。出现一个上下文菜单,其中第二个条目是“退出资源管理器”(没有CTRL-SHIFT,上下文菜单只有一个条目)

答案 2 :(得分:0)

  

p.s。这不是恶意程序,它将在后台运行浏览器时运行无法正常运行的游戏

Explorer是Windows的重要组件。您应该调试在运行Explorer时为什么会遇到问题,并加以解决。

杀死资源管理器会给您的用户带来严重的问题。