32 ビット アプリケーションから 64 ビット レジストリ キーにアクセスする
64 ビット OS で実行すると、OpenSubKey() が失敗する場合があるregedit.exe で表示されるレジストリ キーへの参照を返します。この不一致は、32 ビット アプリケーションがデフォルトで目的のブランチではなく HKLMSoftwareWow6432Node ブランチを検査するために発生します。
64 ビット バージョンのレジストリにアクセスするには、RegistryView パラメーターを明示的に指定します。
using (var hklm = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64)) using (var key = hklm.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall")) { // The key now points to the 64-bit subkey branch }
この手法により、OpenSubKey() 関数が適切なレジストリ ブランチをターゲットにすることが保証されます。対象のサブキーへのアクセスを提供します。
4.0 より前の .NET バージョンでは、32 ビット アプリケーションから 64 ビット キーを操作するために P/Invoke を利用する必要がある場合があります。このアプローチの詳細なガイドは、http://www.rhyous.com/2011/01/24/how-read-the-64-bit-registry-from-a-32-bit-application-or で参照できます。 -その逆/
以上が32 ビット アプリケーションはどのようにして 64 ビット レジストリ キーにアクセスできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。