none
关于自定义shell的问题 RRS feed

  • 问题

  • 现在通过修改注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon中的shell为自己的应用程序,请问怎样做才能退出自己应用程序的时候重新启动windows桌面?

    现在在退出自己程序的使用启用了explorer.exe,但是只是打开了资源管理器,桌面和任务栏还是都没有。另外启动时的shell不是explorer,在启动后通过自己程序或者在任务管理器里打开explorer,连接u盘是explorer不能识别到u盘。

    2012年6月19日 1:36

答案

  • 如果你是在注册表中修改Shell为自定义程序的话,那么在系统启动时就不会加载桌面、任务栏、资源管理器、控制面板等项目。所以当你推出自定义程序后,运行Explorer.exe就只能启动资源管理器,同样,如果退出后你运行iExplorer.exe,就只能启动IE浏览器。

    所以,通过注册表Shell键值修改的方法,你是无法完成退出后回到标准Windows 桌面。但是你可以用变通的方法实现:

    1. 编辑一个bat文件,加载Windows启动后需要加载的所有桌面项

    2. 或者,将你的应用程序设为Shell组件,然后Build up到你的XPE镜像中

    3. 或者,设置你的应用程序为全屏应用并置顶,退出后桌面就会显示出来

    4. 设置两个Windows用户,一个是以你应用程序为Shell的用户,一个是标准用户,当用户推出应用以后,完成一个用户注销切换的过程,就回到桌面用户了


    lzg_ad

    2012年7月11日 4:21
    版主

全部回复

  •       可以在你的程序中做个调用,选择下次启动时是进自定义shell还是进到explorer.exe,然后重启。 这样切换就方便一些了。

    2012年6月19日 2:30
  • 问题是不想退自己程序后还需要重启系统才能启动桌面啊
    2012年6月19日 5:41
  • 如果你是在注册表中修改Shell为自定义程序的话,那么在系统启动时就不会加载桌面、任务栏、资源管理器、控制面板等项目。所以当你推出自定义程序后,运行Explorer.exe就只能启动资源管理器,同样,如果退出后你运行iExplorer.exe,就只能启动IE浏览器。

    所以,通过注册表Shell键值修改的方法,你是无法完成退出后回到标准Windows 桌面。但是你可以用变通的方法实现:

    1. 编辑一个bat文件,加载Windows启动后需要加载的所有桌面项

    2. 或者,将你的应用程序设为Shell组件,然后Build up到你的XPE镜像中

    3. 或者,设置你的应用程序为全屏应用并置顶,退出后桌面就会显示出来

    4. 设置两个Windows用户,一个是以你应用程序为Shell的用户,一个是标准用户,当用户推出应用以后,完成一个用户注销切换的过程,就回到桌面用户了


    lzg_ad

    2012年7月11日 4:21
    版主
  • 多谢版主!

    请问“1. 编辑一个bat文件,加载Windows启动后需要加载的所有桌面项”这个具体要怎么做呢,所有桌面项有哪些?多谢!!


    • 已编辑 mn106 2012年7月23日 12:19
    2012年7月23日 12:19