如何通过安装脚本功能将注册表添加到64位区域?

时间:2016-04-21 08:06:18

标签: registry installshield installscript

许多InstallShield开发人员都怀疑如何使用InstallShield中的IstallScript函数将注册表添加到64位区域

如果我们的安装程序是32位EXE,并且如果我们在64位计算机上安装此安装程序,则所有RegDB功能都指向 Wow6432Node 注册表区域。但很多时候我们必须使用32位安装程序将注册表添加到64位区域。那么我们如何实现这一目标呢?

例如 如果我在InstallScript中执行以下代码。

RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);
RegDBCreateKeyEx("SOFTWARE\\XYZ", "");

我想在HKLM\SOFTWARE\XYZ下添加此注册表项。但是此条目会添加到HKLM\SOFTWARE\Wow6432Node\XYZ下。

那么在64位区域下添加此注册表的解决方案是什么?

1 个答案:

答案 0 :(得分:1)

有两种解决方案可以实现这种情况。

第一个解决方案是,

我们可以创建组件,使其成为64位,我们将在InstallShield中添加注册表项。

第二个解决方案是,

如果我们想要添加独立于任何组件的注册表,那么我们可以使用REGDB_OPTIONS

RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);
REGDB_OPTIONS = REGDB_OPTION_WOW64_64KEY;
RegDBCreateKeyEx("SOFTWARE\\XYZ", "");

这会将注册表添加到64位区域。