har*_*ers 4 c# windows explorer
我正在尝试编写一个关闭资源管理器然后运行另一个程序的程序.
我在尝试使用以下代码关闭资源管理器时遇到问题:
foreach (Process p in Process.GetProcesses())
if (p.MainModule.ModuleName.Contains("explorer"))
p.Kill();
Run Code Online (Sandbox Code Playgroud)
有人可以让我知道为什么这样做并提供解决方案
CHEERS
ps这不是一个恶意程序,它将运行一个游戏,当探险家在后台时,该游戏无法正常工作
问题是你可以在任何一个时间点运行多个版本的Explorer ...而且你通常至少需要其中一个版本.承载"开始"菜单的shell实际上是Explorer的实例.因此,如果关闭所有Explorer实例,您也将关闭主shell,这不是您想要做的.
但是,获取Explorer的所有实例并将其杀死的最快方法是:
foreach (Process p in Process.GetProcessesByName("explorer"))
{
p.Kill();
}
Run Code Online (Sandbox Code Playgroud)
有一种简单的无记录方式可以干净地退出资源管理器,另请参阅问题优雅退出资源管理器(以编程方式).它适用于从事shell扩展的开发人员.
对于Windows XP和Windows 7,该过程有所不同:
Windows XP:打开关机对话框(开始>关机),然后按CTRL-SHIFT-ALT-ESC取消对话框(或按住CTRL-SHIFT-ALT并用鼠标按下按钮).
Windows 7:打开"开始"菜单,然后在右键单击开始菜单的空白区域时按住CTRL-SHIFT,查看屏幕截图.出现一个上下文菜单,其中第二个条目是"退出资源管理器"(没有CTRL-SHIFT,上下文菜单只有一个条目)
归档时间: |
|
查看次数: |
5139 次 |
最近记录: |