如何从用户代码处理UnauthorizedAccessException

时间:2011-12-23 15:04:55

标签: c# exception-handling regedit unauthorizedaccessexcepti

在我的Windows应用程序中,我正在对注册表进行一些更改,例如删除特定的密钥,在某些测试场景中,例如在安装了UAC的Vista机器上,我得到System.UnauthorizedAccessException。我的代码看起来像这样:

try
{
    //delete registry keys
}
catch (UnauthorizedAccessException ex)
{
    //handling
}
catch (Exception genEx)
{
    //handling
}

但是应用程序仍会崩溃。不会被catch块处理。我有办法处理它吗?

3 个答案:

答案 0 :(得分:1)

你可能会从catch块中抛出另一个异常。 尝试评论catch块中的所有行,它应该可以正常工作。

答案 1 :(得分:0)

最常见且显而易见的原因是路径/文件程序正在尝试访问,无法访问其运行所依据的身份。

MSDN

上阅读更多内容

答案 2 :(得分:0)

您必须为您的应用设置管理员权限

只需右键单击并选择属性

并选中以管理员身份运行检查并运行您的应用程序

以管理员身份运行所有用户点击所有用户按钮,然后选择以管理员身份运行所有用户,这将始终为所有用户运行具有管理员权限的应用程序

enter image description here