cnd*_*cnd 1 .net c# registry uac
我有错误信息:
请求的注册表访问被拒绝
当试图通过打开UAC 写入注册密钥时:
RegistryKey.OpenRemoteBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, "")
tawkey.OpenSubKey(x, true).SetValue(X, V, RegistryValueKind.DWord)
Run Code Online (Sandbox Code Playgroud)
在我的软件安装过程中,我必须运行"subinacl/subkeyreg HKEY_LOCAL_MACHINE\PathToMyKeys .../grant = user = f"吗?或者还有其他方法可以访问我的注册表项?
谢谢.
如果您希望写入密钥HKLM,则需要升级过程.这可以通过在应用程序的清单中设置requestedExecutionLevel来实现requireAdministrator.
进行此更改意味着您的应用程序每次运行时都会显示一个UAC提升对话框.这无疑会令人恼火,所以这里有一些避免这种刺激的选择:
HLKM标准用户具有写访问权限之外的其他位置.HLKM在安装程序中执行写入.HLKM仅在程序中偶尔使用的功能需要写入,请安排按需提升.备选方案3需要一点阐述.一旦进程启动,您就无法提升它.您只能在流程开始时提升.因此,为了实现选项3,您需要将该功能存在于单独的进程或进程外的COM服务器中.如果沿着这条路走下去,请记住在导致UAC对话的任何UI元素上包含盾牌图标.