我正在尝试编写一个快速应用来修改一些注册表项。当我通过RegEdit浏览时,我可以毫无问题地修改和删除密钥。
但是当我尝试使用RegistryKey.DeleteSubKey()
时,它会抛出UnauthorizedAccessException
。
有没有办法获得这样做的特权?另外,如果我的用户帐户显然有权进行更改,为什么会出现问题?
编辑:
这是一些代码
RegistryKey reg;
try
{
reg = Registry.CurrentUser.OpenSubKey(BaseKey);
reg.DeleteSubKey("{" + Item.Guid.ToString() + "}");
}
catch
{
return false;
}
答案 0 :(得分:44)
尝试这样做,最初打开它作为读/写而不是只读:
RegistryKey reg;
try
{
reg = Registry.CurrentUser.OpenSubKey(BaseKey, true); //<--over here!
reg.DeleteSubKey("{" + Item.Guid.ToString() + "}");
}
catch
{
return false;
}