RegistryKey localMachineRegistry = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine,RegistryView.Registry64);
string[] list = localMachineRegistry.GetSubKeyNames();
RegistryKey key = localMachineRegistry.OpenSubKey(keyPath, false);
list = key.GetSubKeyNames();
私は64ビットOSを使用しています。私が実行しているプロセスは 32 ビットですが、レジストリ設定が wow64 領域にあることがわかっています。への呼び出しlocalMachineRegistry.GetSubKeyNames()
は 32 ビット情報を返します。wow64 regedit を使用してキーを作成すると、への呼び出しは をlocalMachineRegistry.OpenSubKey()
返しますnull
。
私が考えることができるのは、32ビットプロセスがRegistryView.Registry64を使用できないということだけですが、私はそれを読んでいません。