如何在具有管理员权限的情况下编写注册表?

时间:2020-04-07 19:16:32

标签: vb.net

我要使用以下代码创建新的注册表:

Dim r As RegistryKey = Registry.LocalMachine.OpenSubKey(RegEditAuditor, True)
r.SetValue("Actualizar", StartupPath + "\Actualizar")
RegActualizar = r.GetValue("Actualizar", "")
r.Close()

但是,当我执行我的应用程序时,会出现一个错误,我认为这是关于权限的,因为如果我以管理员身份执行,它就可以正常工作。

2 个答案:

答案 0 :(得分:0)

您正在尝试编辑 LOCAL MACHINE 注册表,
这需要管理访问权限,
所以您在这里有2个选择:

1)使装配始终以管理员身份运行

您可以使程序集始终以管理员身份运行。 通过添加清单文件

解决方案资源管理器上右键单击您的项目文件
选择Add,然后选择New item(或CTRL + SHIFT + A),
在这里您可以找到Application Manifest File



<requestedExecutionLevel>元素更改为:

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

2)将LocalMachine更改为CurrentUser(推荐)

Dim r As RegistryKey = Registry.CurrentUser.OpenSubKey(RegEditAuditor, True)
r.SetValue("Actualizar", StartupPath + "\Actualizar")
RegActualizar = r.GetValue("Actualizar", "")
r.Close()

答案 1 :(得分:0)

谢谢!我解决了它更改了requestExecutionLevel的问题,因为我需要任何人都可以做到这一点,无论其权限如何!