C# 无法删除注册表项
我正在为一件非常简单的事情而挣扎。我想通过一个小控制台应用程序删除整个注册表项<代码>应用程序是我要删除的键,无论它包含哪些值: 这就是我所做的,但是C# 无法删除注册表项,c#,key,registry,C#,Key,Registry,我正在为一件非常简单的事情而挣扎。我想通过一个小控制台应用程序删除整个注册表项应用程序是我要删除的键,无论它包含哪些值: 这就是我所做的,但是子键值似乎总是空的: static void Main(string[] args) { string keyPath = "SOFTWARE\\Apps"; var hklm = Registry.LocalMachine; var subKey = hklm.OpenSubKey(keyPath, tr
子键
值似乎总是空的:
static void Main(string[] args)
{
string keyPath = "SOFTWARE\\Apps";
var hklm = Registry.LocalMachine;
var subKey = hklm.OpenSubKey(keyPath, true);
if(subKey != null)
{
subKey.DeleteSubKey("Application");
Console.WriteLine("DELETED");
}
else
{
Console.WriteLine("NOT FOUND");
}
}
我有什么明显的遗漏吗?我已经在寻找其他答案,但一点运气都没有。感谢评论中的建议,我成功地从注册表中删除了该项。我缺少的是明确地告诉系统我想要使用64位版本注册表视图 我必须更改代码,如下所示:
static void Main(string[] args)
{
string keyPath = "SOFTWARE\\Apps";
var subKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64).OpenSubKey(keyPath, true); // This method accepts the RegistryView parameter.
if (subKey != null)
{
subKey.DeleteSubKey("Application");
Console.WriteLine("DELETED");
}
else
{
Console.WriteLine("NOT FOUND");
}
}
“有什么明显的我遗漏的吗”是的,很可能。。这就是注册虚拟化,我已经回答了几个问题,还有很多重复的问题,@将军,我完全忽略了这一点。我对代码做了一些更改,实际上我成功地删除了密钥。谢谢你的帮助。