2010-11-24 2 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ビットを動作させることはできません...バージョンnumberは常に空白です。私はレジストリをチェックして、パスが正しいこと、そして "CurrentVersion"に値があることを確信しています。

誰でも私がここで間違っていることを教えてもらえますか?

ありがとうございます!

答えて

8

NSISでは、SetRegView

でレジストリの「モード」を設定できます
2

インストーラは32ビットとランタイム64ビットですか、その逆ですか?その場合、異なるレジストリノード(HKLM/SoftwareまたはHKLM/Software/Wow6432Node内)にリダイレクトされる可能性があります。

1

NSISインストーラは32ビットプログラムであるため、レジストリの別の部分が表示されます。このナレッジベースの記事では、64ビットWindows上のレジストリの違いについて説明します。

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

私はあなたが32ビットアプリからか、必要のないキーにアクセスできる場合は、完全にはわかりません。

関連する問題