2013-03-04 124 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