2016-08-19 10 views
-1

私はwin32アプリケーションのセットアップファイルを作るために、installshield 2010 expressを使っています。x64マシンのwin32アプリケーションのレジストリ

いくつかのレジストリキーを登録する際に問題があります。

私は、以下のように2つのレジストリエントリを登録するためにinstallshieldプロジェクト(.ise)を設定しました。

  1. [HKCU \ SOFTWARE \ PROGNAME \ SomeKeys]
  2. [HKLM \ SOFTWARE \ PROGNAME \ SomeKeys]

私はx64のマシン上でチエニルセットアップをインストールすると、HKキーはWOW6432NODEに書き込み[HKLM \ Software \ Wow6432Node \ ProgName \ SomeKeys]をクリックします。それは私が欲しいものです。

しかし、HOWは、Wow6432Nodeに何も書き込まれません。 [HKCU \ Software \ ProgName \ SomeKeys]ではなく[HKCU \ Software \ Wow6432Node \ ProgName \ SomeKeys]という[HKCU \ Software \ ProgName \ SomeKeys]に書き込みます。

なぜこの問題が発生しましたか。

私にアドバイスをお願いします。ありがとうございます

答えて

3

これは、Microsoftの一部の仕様で正しく動作しています。 MSDNのドキュメントをお読みください:

Registry Redirector

リダイレクトキーがWow6432Node下の物理的な場所にマッピングされます。 WOW64の下で

Registry Keys Affected by WOW64

、特定のレジストリキーがにリダイレクトされます。 32ビットまたは64ビットアプリケーションがリダイレクトされたキーのレジストリ呼び出しを行うと、レジストリリダイレクタは呼び出しをインターセプトし、キーの対応する物理レジストリの場所にマップします。詳細については、Registry Redirectorを参照してください。

他のレジストリキーは、で、共有されているのは、64ビットWindows上の32ビットアプリケーションと64ビットアプリケーションの両方でです。共有キーへの32ビットレジストリ呼び出しはリダイレクトされません。代わりに、キーの1つの物理コピーがレジストリの各論理ビューにマップされます。 HKCU\Software

ユーザ定義サブキーはを共有しているので、それらのためのWow6432Nodeサブキーが存在しません。 HKLM\Software

ユーザー定義のキーはををリダイレクトしているので、彼らのためにWow6432Nodeサブキーがあります。

+2

いくつかのコンピュータは 'HKCU \ Software \ Wow6432Node'キーを持っていますが、バグのためだけです。これは「実際の」32ビットノードではなく、ソフトウェアによってハードコードされたパスで書かれた普通のレジストリキーです。 –

+1

合意。 'Wow6432Node'のキーに直接アクセスしてはいけないということを理解していない人もいますが、キーを開く/作成するときに32ビット/ 64ビットの適切なビューフラグを指定することによってレジストリリダイレクタが処理する必要があります。 –

+0

私が持っているすべてのコンピュータには、このキー「HKEY_CURRENT_USER \ SOFTWARE \ Wow6432Node \ Microsoft \ Active Setup」が含まれています。 MSでもこの権利を得ることはできません! –

関連する問題