可能性の重複をレジストリを読み込むとき:奇妙な行動C#で
var b1 = Registry.LocalMachine.OpenSubKey("software", true); var b2 = Registry.LocalMachine.OpenSubKey("software", true).OpenSubKey("company"); var r1 = Registry.LocalMachine.OpenSubKey("software").OpenSubKey("company").GetValueNames(); string resultString = Registry.LocalMachine.OpenSubKey("Software", true).CreateSubKey("company").GetValue(name).ToString();
私は
name
="ApplicationDirectory"
でそれを呼び出す:
C# WOW6432 registry node messin things up
これはコードです。最後の行では、最初の2つの変数が(Name
プロパティに基づいて)正しい場所を指しています。問題はr1
であり、HKEY_LOCAL_MACHINE\SOFTWARE\company
の内容はリストされていませんが、むしろHKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\company
です。どうしてこれなの?これは64ビットマシンのリダイレクションですか?
短い回答:[はい](http://msdn.microsoft.com/en-us/library/aa384232(v = vs.85).aspx)。 – Blorgbeard
64ビットコンピュータには32ビットに分割されたレジストリセクションがあります。私はそれがレジストリ仮想化と呼ばれると思います。 –
http://stackoverflow.com/questions/8959983/c-sharp-wow6432-registry-node-messin-things-up/8960020#8960020 –