2013-08-27 81 views
1

我碰巧使用C#无法删除注册表编辑器特定的注册表使用C#

const string basereg="HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\ram"; 
Registry.SetValue(basereg,"r","s",RegistryValueKind.String); 

写注册表编程 - 它创建RAM子项中字串值“R”。添加以下代码后

我预期代码删除名为“R”内部RAM键[上面提到的子项],但我刚开厚望为“System.NullReferenceException”

string pat = "\\SOFTWARE\\Wow6432Node\\ram"; 
RegistryKey del = null; 
del = Registry.LocalMachine.OpenSubKey(pat, true); 
del.DeleteValue("r"); 

由于

问候, Ram

+0

我不知道OpenSubKey()是否返回null,即使这看起来很奇怪。 – ash

回答

0

Registry.LocalMachine.OpenSubKey()会打开一个键,但ram是一个值,而不是一个键。

试试这个:

string pat = "\\SOFTWARE\Wow6432Node"; 

注册表项 '关键' 和 '价值' 是不是典型的用法。密钥的注册表中有多个名称各不相同的值。