私の 32 ビット アプリケーションは 64 ビット Windows 7 で実行されています。レジストリにアクセスしようとしていますHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall。Uninstallデフォルトの 64 ビット レジストリ ビューのキーの下にいくつかのサブキーがあることを regedit で確認できます (Dropbox はその場所と Google Chrome にキーを作成します)。Uninstallただし、実際には 32 ビット レジストリ ビューにはキーがありません。実際、regedit にはActive Setup以下の 1 つのキーしかありませんHKEY_CURRENT_USER\Software\Wow6432Node\Microsoft。Windows下にサブキーすらありませんMicrosoft。
ただし、32 ビット アプリケーションが の 32 ビット レジストリ ビューにアクセスしようとするとHKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall、64 ビット ビューからキーを取得します。何故ですか?
フラグKEY_WOW64_32KEYでさえ、ここでは役に立ちません。コードは、結果が 32 ビット ビューからのものか、64 ビット ビューからのものかを知る必要があります。
私たちのコードは、キーの 32 ビット ビューと 64 ビット ビューの両方にもアクセスしますが、HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstallこの問題は見当たりません。違いは、HKLM の 32 ビット ビューにはUninstallキーがあり、HKCU の 32 ビット ビューにはキーがないことです。
WoW64 のレジストリ リダイレクトは知っていますが、これは違うようです。MSDN で有用な情報を見つけることができませんでした。誰かがこれに光を当てることができますか?