2010-11-24 72 views
4

我正在使用NSIS腳本爲我的Java項目生成Windows安裝程序。在這個安裝程序中,我想在繼續之前檢查計算機是否有正確的JRE版本。NSIS:無法從Windows 7中的註冊表中獲取JRE版本64位

這是我獲得的JRE版本的代碼片段: -

ReadRegStr $1 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" "CurrentVersion" 

# display $1 value for testing purpose 
MessageBox MB_OK "Version: $1" 

此代碼工作正常的Windows XP,但我不能讓它工作在Windows 7 64位...版本數字總是空白。我檢查註冊表,我很確定路徑是正確的,「CurrentVersion」有一個值。

誰能告訴我我在這裏做錯了什麼?

非常感謝!

回答

2

安裝程序32位和運行時64位或反之亦然?在這種情況下,您可能會重定向到不同的註冊表節點(位於HKLM/Software或HKLM/Software/Wow6432Node內)。

1

NSIS安裝程序是一個32位程序,因此它看到註冊表的不同部分。這篇知識庫文章解釋了64位Windows上註冊表的不同之處。

http://support.microsoft.com/kb/305097

我不能完全肯定,如果您可以訪問您從32位應用程序或不需要的關鍵。

相關問題