的Process.Start( “EXPLORER.EXE”);不会带回任务栏

时间:2013-08-15 20:36:15

标签: c# winforms process taskmanager

截至目前,我正在通过WinForms开发一个模拟操作系统,用作电影的支柱。 在运行应用程序时,它会杀死explorer.exe,以便您在拍摄期间不会意外地显示Windows任务栏。问题是,关闭模拟操作系统后,我想再次启动explorer.exe。但是,Process.Start("explorer.exe");会显示一个资源管理器窗口,并且不会重新启动窗口任务栏。

我知道一个事实,任务管理器能够通过在新任务下键入“explorer.exe”来恢复窗口任务栏,尽管我没有找到传递给任务管理器的命令行参数

修改 我在Windows 7下运行。同样,我正在深入研究这个模拟操作系统。我控制了Windows使用的很多按键。出于这个原因,我杀了explorer.exe,以便我可以使用按键,如“Alt-Tab”,并显示模拟应用程序切换器等。该应用程序已经全屏运行,但它仍然可以有基础Windows GUI弹出备份。我基本上用我自己的模拟探索器替换explorer.exe。关闭我的自定义资源管理器后,我似乎无法通过Process.Start();启动explorer.exe来恢复常规Windows GUI。

2 个答案:

答案 0 :(得分:11)

来自here

尝试

Process.Start(Path.Combine(Environment.GetEnvironmentVariable("windir"), "explorer.exe"));

看来你必须指定资源管理器的完整路径才能恢复任务栏。

答案 1 :(得分:0)

来自Regex demo

  

Explorer必须看到一些满足的条件才能作为shell启动:

     
      
  1. Explorer一定不能运行(例如,包括控制面板)
  2.   
  3. Explorer必须看到它是实际的外壳程序-因此您需要在启动explorer.exe之前替换该值(可以在几秒钟后将其更改回去)
  4.   
  5. 有时(在较新的Windows版本上),这似乎取决于启动explorer.exe的过程-如果explorer.exe被“了解”,尽管我对此部分没有更多详细信息(而且您不幸的是,它无法更改)
  6.