2016-08-19 100 views
-1

我使用installshield 2010 express版本来制作win32应用程序的安装文件。在x64机器上的win32应用程序的注册表

我有一些问题需要注册一些注册表项。

我配置了installshield项目(.ise)来注册两个注册表项如下。

  1. [HKCU \ SOFTWARE \ PROGNAME \ SomeKeys]
  2. [HKLM \ SOFTWARE \ PROGNAME \ SomeKeys]

当我在x64机器上安装thie设置,香港关键写入Wow6432Node [HKLM \ SOFTWARE \ Wow6432Node \ PROGNAME \ SomeKeys。这正是我想要的。

但是HKCU不会写任何东西给Wow6432Node。 它写在[HKCU \ Software \ ProgName \ SomeKeys]不是[HKCU \ Software \ Wow6432Node \ ProgName \ SomeKeys]。

为什么会出现问题。

请给我任何建议。谢谢

回答

3

这是工作正常,微软的设计部分。请参阅MSDN文档:

Registry Redirector

重定向键Wow6432Node下映射到物理位置。

Registry Keys Affected by WOW64

在WOW64,某些注册表项重定向。当32位或64位应用程序针对重定向的键进行注册表调用时,注册表重定向程序会拦截该调用并将其映射到键的相应物理注册表位置。有关更多信息,请参阅Registry Redirector

其他注册表项是由32位和64位应用程序在64位Windows上共享共享。对共享密钥的32位注册表调用不会重定向。而是将密钥的一个物理副本映射到注册表的每个逻辑视图中。下方HKCU\Software

用户定义的子项是共享,所以没有Wow6432Node子项他们。

HKLM\Software下面的用户定义密钥是重定向,所以他们有一个Wow6432Node子密钥。

+2

请注意,有些电脑*有* HKCU \ Software \ Wow6432Node'键,但只是因为一个错误。它不是一个“真正的”32位节点,只是一个由硬编码路径的软件编写的普通注册表键。 –

+1

同意。有些人仍然很难理解他们应该直接访问'Wow6432Node'键,他们应该让Registry Redirector代表他们处理它,通过在打开/创建键时指定适当的32位/ 64位视图标志。 –

+0

我每台计算机都包含这个键HKEY_CURRENT_USER \ SOFTWARE \ Wow6432Node \ Microsoft \ Active Setup',这让我笑了起来。即使MS不能得到这个权利! –

相关问题