9

NSIS でビルドされたアプリケーション セットアップがあります。このセットでは、アプリケーションを開始するために次の場所にキーを作成する必要があります:- HKEY_LOCAL_MACHINE\Software\\\" "VersionNo" 0 HKEY_LOCAL_MACHINE\Software\Wow6432Node\\" "VersionNo" "11"

スクリプトでは、私は使用しました:-

      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 用のコマンド/スクリプトを提案してもらえますか?

解決策を楽しみに待っています....

4

1 に答える 1

34

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

SetRegView 64
WriteRegDWORD HKLM "SOFTWARE\<Key1>\<Key2>" "VersionNo" 0
SetRegView 32
WriteRegStr HKLM "SOFTWARE\<Key1>\<Key2>" "VersionNo" "11"
于 2012-06-22T04:45:22.633 に答える