gpt4 book ai didi

c++ - Windows UAC 设置为始终通知时无法写入注册表

转载 作者:可可西里 更新时间:2023-11-01 11:21:56 25 4
gpt4 key购买 nike

我有一个 C++ 应用程序,我们在其中将设置写入注册表(在我的应用程序的 HKEY_CURRENT_USER 和 HKEY_LOCAL_MACHINE 下)。当 Windows 用户访问控制设置为始终通知时,RegCreateKeyEx 方法返回访问被拒绝并且它不会写入 HKEY_LOCAL_MACHINE但它在 HKEY_CURRENT_USER 注册表中成功写入。我正在使用这种方法来写:

lRet = RegCreateKeyEx( m_hSWRootKey, LPCTSTR(strKey), 
0, _T(""), m_dwCreationFlag, KEY_WRITE | KEY_READ,
NULL, &hKey, &Disposition );

当 UAC 设置为从不通知时,此方法工作正常。

为什么不写入HKEY_LOCAL_MACHINE?我如何覆盖 Windows UAC 设置,以便在设置为“始终通知”时能够写入?

请提出建议。

最佳答案

除非您拥有管理员权限,否则您无法写入 HKEY_LOCAL_MACHINE。对于基于 NT 的 Windows 版本,情况一直如此。 UAC 的变化是管理员用户默认使用标准用户 token 运行,并且仅提升以获得需要提升权限的操作的管理权限。

你有两个选择:

  1. 找到一种无需写入 HKEY_LOCAL_MACHINE 即可实现目标的方法。
  2. 要求用户获得写入 HKEY_LOCAL_MACHINE 的应用部分的管理员权限。

在这些选项中,第一个是迄今为止首选的。

关于c++ - Windows UAC 设置为始终通知时无法写入注册表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6016094/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com