如何允许注册表(写)访问我的.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"我的软件安装?或者有其他方法可以访问我的注册表项?

谢谢。

如何允许注册表(写)访问我的.net应用程序

如果希望写入HKLM下的键,则需要提升进程。这可以通过在应用程序的清单中将requestedExecutionLevel设置为requireAdministrator来实现。

做这个改变意味着你的应用程序将在每次运行时呈现一个UAC提升对话框。这无疑会令人恼火,所以这里有一些避免这种恼火的方法:

  1. 写入HLKM以外的地方,标准用户有写访问权限。
  2. 执行写HLKM在您的安装程序。
  3. 如果写入HLKM只需要在你的程序中偶尔使用的功能,安排你按需提升

选项3需要稍作阐述。一旦进程启动,您就无法提升它。您只能在进程启动时提升。因此,为了实现选项3,您需要该功能存在于单独的进程或进程外的COM服务器中。如果你沿着这条路走下去,记得在任何UI元素上包含一个盾牌图标,导致一个UAC对话框。