我已经搜索谷歌和这里的答案现在一段时间,并得出结论,写入注册表时,HKEY_CURRENT_USER应该可用没有UAC,正确?无论如何,每个线程似乎都是这样。我的问题是,当试图访问此密钥并写入一个新值时,我遇到访问被拒绝错误。这是由于我的注册表有问题吗?或者我做错了什么?以下是我正在使用的代码:无法写入HKEY_CURRENT_USER在C#中的注册表项#
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
编辑
由于大卫和汉斯在评论中指出,这个问题是由于一些从改变密钥阻挡我。我发现它是comodo antivirus,所以我把它关掉了。这使得应用程序功能正常。感谢您的回复!
管理员可以在每个单独的密钥上覆盖访问权限。这个名单将是最高的。运行regedit.exe,右键单击密钥Permissions。 –
对于我来说,这恐怕不是一个可行的解决方案。此应用程序也将在我的其他电脑上运行,因此更改每台电脑的权限不是一种选择。感谢您的建议。 – arebokert
@arebokert这不是汉斯所说的。汉斯表示,您的注册表有可能被拒绝您的用户权限来执行您正在尝试的权限。在这种情况下,不要求其他解决方案会有所帮助。如果安全性拒绝你访问,你不能绕过它。如果可以的话,它不会是这个安全的。 –