我如何启动资源pipe理器使用c#中的进程类

我已经用我的应用程序取代了Windowsshell,它完美的工作,closures我的应用程序后,我必须启动Windows资源pipe理器与下面的一段代码

代码启动资源pipe理器

Process.Start(@"c:\windows\explorer.exe"); 

我用来replaceshell的registry

 HKEY_Local_Machine\Software\Microsoft\WindowsNT\CurrentVersion\WinLogon\Shell 

它不显示任务栏和开始菜单,它只显示mydocuments文件夹。 在资源pipe理器启动后,我需要启动菜单和任务栏

Solutions Collecting From Web of "我如何启动资源pipe理器使用c#中的进程类"

我的猜测是,因为资源管理器没有被定义为shell,它不会像shell一样运行。 我认为你必须改变注册表设置才能让Explorer再次运行之前。

所以,正如你写的,你用自己的版本替换了注册表中的shell。 所以这是由你来显示一个开始菜单,等等。如果你想启动一个资源管理器,让它作为一个shell,继续用旧的替换注册表中的条目。

由于事实,你喜欢再次成为壳,下次开始,也许下面的技巧将做到这一点:

Prerequisities:

  • 把你的程序放在注册表中作为shell并启动windows
  • 你的程序运行,并希望启动资源管理器作为壳

行动到:

  1. 将注册表中的条目替换为包含explorer的条目作为shell
  2. 启动资源管理器
  3. 将注册表中的条目作为shell程序替换回您的应用程序
  4. 等到下次开机…

在重新启动浏览器之前,您可能必须杀死现有的shell进程(即您的应用程序)。