DeleteSubKey UnauthorizedAccessException

时间:2010-04-28 18:22:35

标签: c# .net registry

我正在尝试编写一个快速应用来修改一些注册表项。当我通过RegEdit浏览时,我可以毫无问题地修改和删除密钥。

但是当我尝试使用RegistryKey.DeleteSubKey()时,它会抛出UnauthorizedAccessException

有没有办法获得这样做的特权?另外,如果我的用户帐户显然有权进行更改,为什么会出现问题?

编辑:

这是一些代码

RegistryKey reg;

try
{
    reg = Registry.CurrentUser.OpenSubKey(BaseKey);
    reg.DeleteSubKey("{" + Item.Guid.ToString() + "}");
}
catch
{
    return false;
}

1 个答案:

答案 0 :(得分:44)

尝试这样做,最初打开它作为读/写而不是只读:

RegistryKey reg;

try
{
    reg = Registry.CurrentUser.OpenSubKey(BaseKey, true); //<--over here!
    reg.DeleteSubKey("{" + Item.Guid.ToString() + "}");
}
catch
{
    return false;
}