访问注册表项会引发异常?

Posted

技术标签:

【中文标题】访问注册表项会引发异常?【英文标题】:accessing a registry key throws an exception? 【发布时间】:2012-11-21 18:23:20 【问题描述】:

我正在尝试访问寡妇 8 注册表中以下路径中的键:

软件\Wow6432Node\Microsoft\Windows\CurrentVersion\Run

我正在使用以下代码来做到这一点:

using (RegistryKey baseKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Default))

    using (RegistryKey key = baseKey.OpenSubKey(startUpRegistryPath))

但这会引发异常:

SecurityException: 不允许请求的注册表访问。

如何使用 C# 代码获得对该路径的写入权限?

谢谢!

【问题讨论】:

你没有写权限还是没有权限? 【参考方案1】:

可能需要Application Manifest 请求管理员权限,以便您的应用程序可以访问注册表。

<requestedExecutionLevel level="requireAdministrator" uiAccess="true"/>

UAC 禁止应用程序对被视为“有害”的特定区域拥有权利;其中包括注册表和 Program Files/Windows 目录。

【讨论】:

谢谢,我确实尝试过...但是当我启动 exe 时,它​​总是提示说“请求的操作需要提升” @user1202434:会的,除非你禁用了 UAC。该警告旨在保护最终用户。如果你想在开发中短路,请在管理员权限下运行Visual Studio,这样在调试的时候,你就不会再遇到麻烦了。 只需右键单击应用程序并选择以管理员身份运行,如果仍然抛出异常,则清单文件无济于事。

以上是关于访问注册表项会引发异常?的主要内容,如果未能解决你的问题,请参考以下文章

使用Visual Studio 2015生成的Word加载项会引发异常

更改注册表文件夹权限会引发访问被拒绝

在发送电子邮件进行注册过程中出现异常时该怎么办

Python怎么断言账号是不是注册成功

请求的注册表允许访问而没有安全漏洞

ASP.NET MVC中注册Global.asax的Application_Error事件处理全局异常