无法在C#中写入HKEY_CURRENT_USER注册表项

阿雷博克特

我已经搜索了google和这里的答案一段时间了,得出的结论是,写入注册表时,HKEY_CURRENT_USER应该在没有UAC的情况下可用,对吗?这就是每个线程似乎要声明的内容。我的问题是,尝试访问此键并写入新值时出现访问拒绝错误。这是由于注册表存在问题还是我做错了吗?这是我正在使用的代码:

string runKey = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run";
RegistryKey startupKey = Registry.CurrentUser.OpenSubKey(runKey, true);
startupKey.SetValue("Arebokerts application", '"' + Environment.CurrentDirectory +     "\\arebokert.exe" + '"', Microsoft.Win32.RegistryValueKind.String);

有人会这么友善,对这个问题有所了解吗?我想远离任何类型的UAC提示,并能够在没有UAC特权的情况下运行它。此代码引发“ UnauthorizedAccessException”。怎么了?

最好的问候,arebokert

编辑

正如David和Hans在评论中指出的那样,此问题是由于某些原因阻止了我更改密钥。我发现它是comodo防病毒软件,因此我将其关闭。这样可以使应用程序正常运行。感谢您的所有回复!

戴维·赫弗南

您的代码很好,默认情况下,标准用户可以写入HKCU问题是系统拒绝您对注册表的那部分进行写访问。最可能的解释是:

  1. 运行此代码的计算机已保护该特定密钥,以限制写访问权限。检查regedit是否属于这种情况。导航到该键,在树视图中右键单击该键,然后选择“权限”。选择您的用户名,然后查看您拥有什么权限。您应该同时选中“完全控制”和“允许”。

  2. 您正在运行的防病毒或防恶意软件产品正在阻止对该密钥的写访问。由于此密钥已被恶意软件广泛使用,因此反恶意软件产品反击的情况并不少见。您可以通过暂时禁用所有防病毒或反恶意软件产品来诊断是否是原因。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法在C#中写入HKEY_CURRENT_USER注册表项

来自分类Dev

将注册表写入hkey_current_user而不是hkey_users

来自分类Dev

无法读取C ++中的注册表项

来自分类Dev

无法读取C ++中的注册表项

来自分类Dev

C#写入HKCU中的注册表项不起作用

来自分类Dev

无法使用UAC从Excel在Hkey_Local_Machine中创建注册表项

来自分类Dev

使用C#删除注册表项

来自分类Dev

从 C# 读取注册表项

来自分类Dev

C#写入注册表

来自分类Dev

我怎么知道在HKEY_LOCAL_MACHINE中创建注册表项的用户名

来自分类Dev

无法读取注册表项

来自分类Dev

无法删除注册表项

来自分类Dev

无法读取注册表项

来自分类Dev

无法创建注册表项

来自分类Dev

写入受保护的注册表项

来自分类Dev

使用 NSIS 写入注册表项失败

来自分类Dev

如何在Windows 7 / Windows 8 C#中创建注册表项

来自分类Dev

使用C#删除注册表项中的所有值

来自分类Dev

使用C#删除注册表项中的所有值

来自分类Dev

C#获取Office ClickToRun注册表项返回null

来自分类Dev

如何读取注册表项的值C#

来自分类Dev

无法使用.NET C#写入64位注册表

来自分类Dev

无法在Windows注册表中的HKEY_CLASSES_ROOT下创建密钥

来自分类Dev

锁定注册表项,使其无法编辑

来自分类Dev

在C ++中枚举HKEY_LOCAL_MACHINE \ SOFTWARE中的注册表子项

来自分类Dev

在Inno Setup中将值写入存储在数组中的所有注册表项

来自分类Dev

如何查看在程序安装过程中写入了哪些注册表项?

来自分类Dev

Delphi导出HKEY_CURRENT_USER键不起作用-空结果文件

来自分类Dev

cmd.exe可以在除HKEY_CURRENT_USER \ Console之外的其他位置存储颜色?

Related 相关文章

热门标签

归档