在 Windows XP 中创建外壳替换的正确方法是什么?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/5218234/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-15 16:21:25  来源:igfitidea点击:

What is the proper way to create shell replacement in Windows XP?

windowswindows-xpregistrywindows-shell

提问by swdev

I am trying to create my own shell that is a shell replacement for Windows. I realize that by just setting the value in REGEDIT at:

我正在尝试创建自己的外壳,它是 Windows 的外壳替代品。我意识到只需将 REGEDIT 中的值设置为:

HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Winlogon

will works in Windows 7. But, in Windows XP, it's not the case.

将适用于 Windows 7。但是,在 Windows XP 中,情况并非如此。

If I try to run Windows Explorer, it'll display the taskbar and make itself as the shell for Windows. But in Windows 7, it will just running Windows Explorer, and not displaying its Taskbar

如果我尝试运行 Windows 资源管理器,它会显示任务栏并使自己成为 Windows 的外壳。但在 Windows 7 中,它只会运行 Windows 资源管理器,而不显示其任务栏

Is there any specific regedit setting needed for a shell replacement in Windows XP?

在 Windows XP 中更换外壳是否需要任何特定的 regedit 设置?

回答by Anders

Explorer will look at the "Shell" string to see if it does not exist or is != "explorer[.exe]", but it only checks under HKEY_LOCAL_MACHINE on XP!

Explorer 将查看“Shell”字符串以查看它是否不存在或是否为 !=“explorer[.exe]”,但它仅在 XP 上的 HKEY_LOCAL_MACHINE 下检查!

If you call one of the undocumented register as shell functions (SetShellWindow, SetProgmanWindow, SetTaskmanWindow, RegisterShellHookWindow etc), explorer will not be able to register itself as the shell since only once process can be the taskbar and desktop shell.

如果您将其中一个未记录的寄存器调用为 shell 函数(SetShellWindow、 SetProgmanWindow、 SetTaskmanWindow、RegisterShellHookWindow 等),则资源管理器将无法将自己注册为 shell,因为只有一次进程可以是任务栏和桌面 shell。

回答by iOS-programmer

You need replace one key in HKLMand the other in HKCU. see this for more info: http://msdn.microsoft.com/en-us/library/ms838576.aspx

您需要更换一个钥匙 inHKLM和另一个 in HKCU。有关更多信息,请参阅:http: //msdn.microsoft.com/en-us/library/ms838576.aspx