如何使用VS2010registry编辑器在64位操作系统上创build自定义registry项“Programmable”

在registry视图中,我使用以下pathHKCR\CLSID\{MYGUID}\Programmable手动创build了Programmable密钥。 我认为在32位操作系统上没有问题。

但是,在64位操作系统上, Programmable以某种方式被遗漏。 我想这可能与64位的registryredirect有关。 看一下registry,我发现CLSID\{MYGUID}实际上位于@ HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\CLSID\{MYGUID}并且没有在{MYGUID}下创build的Programmable密钥。

所以我的问题是 – 是否必须手动指定Programmable键@ HKLM\SOFTWARE\CLasses\Wow6432Node\CLSID\{MYGUID}\Programmable ? 我需要将目标平台更改为x64吗?

不确定你到底在问什么,但是看起来你正面临着在64位Windows上由32位进程的registryredirect导致的问题。

此问题仅在64位Windows上发生。 如果您的应用程序需要registry中的某些值,则应使用一个使用“相同位数”运行的工具来设置这些值。 比如你可以使用Regedit:

  • 您的应用程序是一个32位应用程序:使用32位registry编辑器( %SystemRoot%\SysWOW64\regedit.exe )。

  • 您的应用程序是一个64位应用程序:使用64位registry编辑器( %SystemRoot%\regedit.exe )。

如果由于某种原因,您希望使用64位工具来设置32位应用程序的registry项和值,则需要了解registryredirect的执行方式。 例如, HKLM\Software被redirect到HKLM\Software\Wow6432Node 。 有关详细信息,请参阅上面链接的Microsoft支持文章。