2010-06-17 151 views
1

我试图从注册表中的Local_Machine \ Software中删除注册表。我做了一个名为“DeleteMe”的密钥作为测试来试用,但我无法实现它。尝试删除注册表中的密钥时出错

我试过多个选项,他们都说“subkey”“subkeytree”和“value”不存在,但是他们确实存在!我希望我在这里使用正确的术语。对于它的HKEY_LOCAL_MACHINE \ SOFTWARE \ DeleteMe,我希望它和所有的子键/值被删除...(我希望关键是正确的术语,它们看起来就像文件夹,但右键单击时,他们有选项“复制键名“)。

到目前为止,我尝试过的最好看的东西是这样的,而且我以管理员身份在Windows上运行  7(但我希望它可以在任何操作系统下工作)。

string keyName = @"Software\DeleteMe"; 
using (RegistryKey key = Registry.LocalMachine.OpenSubKey(keyName, true)) 
{ 
    if (key == null) 
    { 
     MessageBox.Show("Not Found"); 
    } 
    else 
    { 
     key.DeleteSubKeyTree("DeleteMe"); 
    } 
} 
+0

你有想分享任何当前的代码,所以我们可以针点您的具体问题? – Jeff 2010-06-17 01:38:23

+0

你有64位的操作系统吗? – 2010-06-17 02:32:00

+0

是的,我做和iv想通了,它适用于CurrentUser ..但LocalMachine它的权限问题,有没有办法强制它删除? – NightsEVil 2010-06-17 02:47:53

回答

1

查看StackOverflow上的此前的答案。一个相当不错的总结过程。你在做什么与此不同?

How to delete a registry value in C#

+0

是的四看那里和每件事我试图我得到“不能删除一个子键树,因为子键不存在)所以我想即时失踪的东西..不知道什么寿。 – NightsEVil 2010-06-17 02:02:46

+0

再次 - 有任何代码,我们可以看看,看看问题可能存在的地方?O/S?如果在Vista或Windows 7上以管理员身份运行应用程序? – Jeff 2010-06-17 02:17:36