我正试图编写一个程序,closures资源pipe理器,然后运行另一个程序。
我试图closures资源pipe理器使用下面的代码时遇到问题:
foreach (Process p in Process.GetProcesses()) if (p.MainModule.ModuleName.Contains("explorer")) p.Kill();
有人请让我知道为什么这样做,并提供一个解决scheme
干杯
ps这不是一个恶意程序,它会运行一个游戏,当浏览器在后台时不能正常工作
问题是你可以有多个版本的资源管理器在任何一个时间点运行……而你通常至少需要其中的一个。 托管开始菜单的shell实际上是资源管理器的一个实例。 所以如果你关闭所有Explorer的实例,你也将关闭主外壳,这不是你想要做的。
然而,最快的方式来获取所有的资源管理器的实例,并杀死他们是:
foreach (Process p in Process.GetProcessesByName("explorer")) { p.Kill(); }
有一个简单的未公开的方式来干净地退出浏览器 ,另请参阅问题退出浏览器(以编程方式) 。 它适用于使用shell扩展的开发人员。
对于Windows XP和Windows 7,过程是不同的:
Windows XP:打开关机对话框(开始>关机),然后按住CTRL-SHIFT-ALT-ESC取消对话框(或按住CTRL-SHIFT-ALT并用鼠标按下按钮)。
Windows 7:打开开始菜单,然后按住CTRL-SHIFT,同时右键单击开始菜单的空白区域,看截图 。 将出现一个上下文菜单,其中第二个条目是“退出浏览器”(不含CTRL-SHIFT,上下文菜单只有一个条目)