我已经用我的应用程序取代了Windowsshell,它完美的工作,closures我的应用程序后,我必须启动Windows资源pipe理器与下面的一段代码
代码启动资源pipe理器
Process.Start(@"c:windowsexplorer.exe");
我用来replaceshell的registry项
HKEY_Local_MachinesoftwareMicrosoftwindowsNTCurrentVersionWinlogonShell
它不显示任务栏和开始菜单,它只显示mydocuments文件夹。 在资源pipe理器启动后,我需要启动菜单和任务栏
未定义的Python DLLvariables引用
如何区分服务器发送的两个不同的SIGUSR2信号?
在Linux中获取有关进程的信息
进程在Linux中终止时文件描述符是否closures?
DLL地狱:SnacNp64.dll + gtkD
Windows中活动进程列表的用途?
将Delphi代码移植到64位 – 为什么没有编译器警告?
我怎样才能用Perl杀死整个进程树呢?
我的猜测是,因为资源管理器没有被定义为shell,它不会像shell一样运行。 我认为你必须改变注册表设置才能让Explorer再次运行之前。
所以,正如你写的,你用自己的版本替换了注册表中的shell。 所以这是由你来显示一个开始菜单,等等。如果你想启动一个资源管理器,让它作为一个shell,继续用旧的替换注册表中的条目。
由于事实,你喜欢再次成为壳,下次开始,也许下面的技巧将做到这一点:
Prerequisities:
把你的程序放在注册表中作为shell并启动windows
你的程序运行,并希望启动资源管理器作为壳
行动到:
将注册表中的条目替换为包含explorer的条目作为shell
启动资源管理器
将注册表中的条目作为shell程序替换回您的应用程序
等到下次开机…
在重新启动浏览器之前,您可能必须杀死现有的shell进程(即您的应用程序)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。