在注册表视图中,我使用以下路径Programmable
手动创建了HKCR\CLSID\{MYGUID}\Programmable
密钥。我认为在32位操作系统上没有问题。
但是,在64位操作系统上,Programmable
会以某种方式错过。我想这可能与64位注册表重定向有关。看看
注册表,我发现CLSID\{MYGUID}
实际上位于@ HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\CLSID\{MYGUID}
并且Programmable
下没有创建{MYGUID}
个密钥。
所以我的问题是 - 我是否还必须手动指定Programmable
密钥@ HKLM\SOFTWARE\CLasses\Wow6432Node\CLSID\{MYGUID}\Programmable
?我是否需要将目标平台更改为x64
?
答案 0 :(得分:2)
不确定您要问的是什么,但您肯定在64位Windows上遇到由registry redirection 32位进程引起的问题。
此问题仅发生在64位Windows上。如果您的应用程序需要注册表中的某些值,则应使用与应用程序使用“相同位数”运行的工具设置这些值。例如,您可以使用Regedit:
您的应用程序是32位应用程序:使用32位Regedit(%SystemRoot%\SysWOW64\regedit.exe
)。
您的应用程序是64位应用程序:使用64位Regedit(%SystemRoot%\regedit.exe
)。
如果由于某种原因您想使用64位工具为32位应用程序设置注册表项和值,则需要了解如何执行注册表重定向。例如,HKLM\Software
被重定向到HKLM\Software\Wow6432Node
。有关详细信息,请参阅上面链接的Microsoft支持文章。