2012-06-22 9 views
8

NSISにアプリケーションセットアップビルドがあります。セットには、私のアプリケーションを起動するために、次の場所に作成するキーが必要です: - HKEY_LOCAL_MACHINE \ソフトウェア\\\ " "VersionNoのは、" 0 HKEY_LOCAL_MACHINE \ SOFTWARE \ WOW6432NODE \\" "VersionNoの" "11"64ビットシステムにレジストリ値を書き込む

このスクリプトでは、私が使用した: -

 WriteRegDWORD HKLM "SOFTWARE\<Key1>\<Key2>\<Key3>" "VersionNo" 0 
     WriteRegStr HKLM "SOFTWARE\<Key1>\<Key2>" "VersionNo" "11" 

このキーは、32ビットWindows 7システムで正常に作成されます。しかし、64ビットWindows 7システムにセットアップをインストールすると、キーは上記の場所に作成されません。代わりに、次の場所にキーを作成します。 -

 HKEY_LOCAL_MACHINE\Software\Wow6432Node\<Key1>\<Key2>\<Key3>" "VersionNo" 0 
     HKEY_LOCAL_MACHINE\Software\Wow6432Node\<Key1>\<Key2>" "VersionNo" "11" 

この結果、インストール後にアプリケーションが起動しなくなります。

- HKEY_LOCAL_MACHINE \ Software \ Wow6432Nodeで作成するのではなく、64ビットシステムでHKEY_LOCAL_MACHINE \ Software \の下に強制的にキーを作成するには、NSISのコマンド/スクリプトをお勧めしますか?熱心溶液を待っ

....

答えて

27

使用SetRegViewは、32ビットと64ビットのレジストリを切り替えます。あなたのコードは次のようになります:

SetRegView 64 
WriteRegDWORD HKLM "SOFTWARE\<Key1>\<Key2>" "VersionNo" 0 
SetRegView 32 
WriteRegStr HKLM "SOFTWARE\<Key1>\<Key2>" "VersionNo" "11" 
+0

ありがとうございました。ソリューションは正常に動作します。 – Bomzinho

+9

@Bomzinhoあなたは答えをSergiusに礼儀として受け入れるべきです –

関連する問題