如何使用VS2010注册表编辑器创建针对64位操作系统的自定义注册表项“Programmable”

时间:2012-03-31 07:01:50

标签: c# visual-studio-2010 excel registry windows-installer

在注册表视图中,我使用以下路径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

1 个答案:

答案 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支持文章。