RegistryKey クラスを使用してWindows レジストリにアクセスする.NETモジュールで奇妙な動作を見つけています。
たとえば、レジストリにアクセスする .NET モジュール testcom.dll を作成しました。この testcom.dll ファイルは、ネイティブ 32 ビット アプリケーションと 64 ビット アプリケーションの両方で使用されます。私の要件は、regkey の値を取得することです (パスはHKEY_LOCAL_MACHINE\SOFTWARE\Test\MyParameters
で、キー名は ですAge
)。この「Age」キーは、32 ビット マシンでは 32 ビット レジストリにあり、64 ビット マシンでは 64 ビット レジストリ (WOW64 ではない) にあります。
64 ビット マシンで、32 ビット アプリケーションが testcom.dll を使用している場合、キー「Age」が WOW64 レジストリで検索されます。64 ビット アプリケーションが testcom.dll を使用している場合、キー「Age」が 64 ビット レジストリで検索されます。
私の要件は、アプリケーションが testcom.dll ファイルを使用するものは何でも、64 ビット マシン上の 64 ビット レジストリのキーを読み取ることです。これどうやってするの?