如何允许注册表(写)访问我的.net应用程序
本文关键字:访问 我的 net 应用程序 何允许 注册表 | 更新日期: 2023-09-27 18:05:08
我有错误信息:
请求的注册表访问被拒绝
当打开UAC: 时,试图将写入注册表项RegistryKey.OpenRemoteBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, "")
tawkey.OpenSubKey(x, true).SetValue(X, V, RegistryValueKind.DWord)
我必须运行"subinacl/subkeyreg HKEY_LOCAL_MACHINE'PathToMyKeys…"/grant=user=f"我的软件安装?或者有其他方法可以访问我的注册表项?
谢谢。
如果希望写入HKLM
下的键,则需要提升进程。这可以通过在应用程序的清单中将requestedExecutionLevel
设置为requireAdministrator
来实现。
做这个改变意味着你的应用程序将在每次运行时呈现一个UAC提升对话框。这无疑会令人恼火,所以这里有一些避免这种恼火的方法:
- 写入
HLKM
以外的地方,标准用户有写访问权限。 - 执行写
HLKM
在您的安装程序。 - 如果写入
HLKM
只需要在你的程序中偶尔使用的功能,安排你按需提升
选项3需要稍作阐述。一旦进程启动,您就无法提升它。您只能在进程启动时提升。因此,为了实现选项3,您需要该功能存在于单独的进程或进程外的COM服务器中。如果你沿着这条路走下去,记得在任何UI元素上包含一个盾牌图标,导致一个UAC对话框。