在我的C#應用程序我無法讀取某些註冊表項,無法讀取某些值從註冊表
RegistryKey key = Registry.LocalMachine.OpenSubKey("Software\\NameOfSoftware\\");
RegistryKey key1 = Registry.LocalMachine.OpenSubKey("Software\\NameOfSoftware\\Version1\\Databases");
RegistryKey key2 = Registry.LocalMachine.OpenSubKey("Software\\NameOfSoftware\\Version2\\Databases");
第一個出現的主要關鍵是,和鍵1和鍵2的子項。我可以讀取key1,但不能讀取key2。
我可以在註冊表中看到這兩個鍵與regedit。很有趣的是,雖然如果我這樣做,
key.GetSubKeyNames()
我得到這樣一個名單,
Version1,
SomethingElse1
SomethingElse2
凡「SomethingElse」鍵是我無法用註冊表編輯器看到的鑰匙?版本2顯然不存在,但我可以用註冊表看到它。
更新: 所以澄清一些事情。工作的關鍵(版本1)已經在那裏。版本2被添加,因爲我導出了版本1的密鑰,編輯文件以Version2替換版本1並將其重新導入。所以,如何在沒有此問題的情況下複製密鑰?
從你的描述,我不能直接追蹤到它的任何這些,但這可能與密鑰,x64 vs x86或註冊表虛擬化的權限有關。 –
http://bytes.com/topic/c-sharp/answers/788151-registry-localmachine-opensubkey-returning-null註冊表虛擬化聽起來是可能的。 – peter