2013-03-04 136 views
0

我正在使用InstallShield并创建一个像插件一样的安装。它必须从注册表中读取程序X的安装位置,然后将必要的文件添加到找到的位置。 我的问题是这样的: 在32位计算机上,注册表将在HKEYLM \ Software \ X下找到。 在64位计算机上,将在HKEYLM \ Software \ Wow6432Node \ X下找到注册表。从注册表(使用InstallShield)更改INSTALLDIR

那么我如何从注册表中读取正确的注册表值,然后将找到的值设置为INSTALLDIR?

+0

你描述这两个注册表项的32位密钥查看时实际上是相同的路径。因此,只需制作搜索文件即可查找“HKLM \ Software \ X”,而不要将其标记为64位。 – 2013-03-04 13:09:51

回答

0

首先查找目标机器是64位还是32位机器。您可以使用SYSINFO.bIsWow64类似的命令。一旦发现通过IF循环运行reg命令并实现您的目标。

0

你已经测试过了吗?我认为如果您搜索x86-RegKey(HKEYLM \ Software \ X),您应该在x64系统上重定向到正确的x64-RegKey(HKEYLM \ Software \ Wow6432Node \ X)。

如果doesn't工作试试这个:x64-redirection