2010-03-05 181 views
4

我正在尝试编写关闭资源管理器然后运行另一个程序的程序。
尝试使用下面的代码以关闭资源管理器时,我得到了一个问题:自动关闭Windows资源管理器

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

可有人请让我知道它为什么是这样做的,并提供了解决方案
CHEERS

附:这不是一个恶意程序,它会运行一个游戏,当浏览器在后台时无法正常工作

+0

以供参考,哪个游戏是这样的? – 2010-03-05 14:24:59

+0

Worms Armageddon - 新版。我认为问题是只有Windows 7仍然是一个非常好的游戏 – harryovers 2010-03-05 14:26:12

+0

你有什么问题?请注意,当您终止shell进程时,通常会自动重新启动。 – 2010-03-05 14:26:33

回答

5

问题是,您可以在任何一个时间点运行多个版本的资源管理器。 。你通常至少需要其中一个。承载开始菜单的外壳实际上是资源管理器的一个实例。所以如果你关闭了所有的资源管理器实例,你也会关闭主shell,这不是你想要做的。

但是,要做到让Explorer的所有实例,并杀死他们以最快的方式是:

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

这就是我想要做的,我现在手动做,以玩游戏。我认为这会更好,如果我有一个按钮关闭资源管理器,然后开始游戏,另一个启动资源管理器 – harryovers 2010-03-05 14:30:49

+0

@harryovers - 好的...我做了一个编辑,然后显示正确的代码。 – Nick 2010-03-05 14:32:42

+1

@harryovers - 正如在不同的评论中提到的那样......如果Shell关闭,Shell通常会自动重启......所以这可能无法很好地工作。 – Nick 2010-03-05 14:44:44

5

没有完全退出浏览器中,参见问题Gracefully Exit Explorer (Programmatically)简单无证方式。它适用于开发外壳扩展的开发人员。

的步骤适用于Windows XP和Windows 7的不同:

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

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

+0

CTRL + SHIFT是管理员键的修饰符,您可以通过按住并点击程序来以管理员身份运行程序。虽然这将工作我用一个称为任务杀死的proram然后用一个bash脚本来杀死资源管理器,并启动程序,我想在一次点击 – harryovers 2011-07-04 09:46:29

相关问题