【发布时间】:2017-10-23 21:46:52
【问题描述】:
我试图在 VB.NET 中制作一个程序,该程序会将自身添加到 Windows 注册表中的启动中。但是,当我运行该程序时,我收到此错误消息:
试图执行未经授权的操作。
我尝试过更改权限,并在网上使用了很多方法,但都被证明是不成功的。我只是似乎没有权限干预注册表。
这是我的代码:
My.Computer.Registry.SetValue("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run", "FILENAME", "FILEPATH")
我做错了什么?
【问题讨论】:
-
旁注:始终为用户提供自愿将您的应用程序添加到启动中的选项,以及反转该选项的选项。 不要在未经用户许可的情况下强制您的应用程序在启动时运行。
-
HKEY_CURRENT_USER 中的几乎所有内容都是可写的,无需特殊权限。而不是权限,我怀疑这里的问题是您需要获取密钥(或打开子密钥),并在密钥上设置值,而不是仅在长路径上调用 SetValue()。
-
感谢您的回复,我在 youtube 上看过很多教程,但它们不包括用户权限,它们仍然有效。请参考这些视频:youtube.com/watch?v=baXyf-jlGm4
-
@EricCartman 从用户那里获得许可是关于良好实践和用户体验,而不是任何技术。
-
这就是 youtube“教程”的问题;他们很少告诉你任何你应该注意的外围问题。