gpt4 book ai didi

c++ - 为所有用户设置注册表值

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

为一台机器上的所有用户设置注册表值的最佳方法是什么。枚举 HKEY_USERS 并更改 ntuser.dat 是一种解决方案。

还有其他解决方案可以在XP、VISTA和Windows 7中使用吗?

实际上安装程序需要将一个 key 写入注册表。所有用户都需要使用该 key 。一旦使用过的 key 应该被重置。

如果我们在 HKLM 中只保留一份 key 拷贝,则无法做到这一点。因为如果第一个用户使用它并重置它,那么其他用户将无法使用它。

我能想到的唯一解决方案是在所有用户中写入该 key ,但这在 Windows 7 的情况下不起作用。

最佳答案

除非您拥有管理员权限,否则您不能写入其他用户拥有的部分注册表。如果你能获得管理员权限,你会更好地使用 HKLM。即使您可以遍历 HKEY_USERS,它充其量也只是一个脆弱的解决方案。

您可能不想要求管理员权限。在这种情况下,注册表没有非管理员用户可以存储要在所有用户之间共享的数据的地方。因此,您应该保存到 CSIDL_COMMON_APPDATA 中的文件中.

另一方面,也许您想要实现的是在安装时设置一个用户会选择的值。如果他们随后修改了您应用中的设置,您希望将其保存在 HKCU 下。通过将默认设置写入 HKLM,您可以很容易地做到这一点。然后,当您的应用读取设置时,它首先会在 HKCU 中查找。如果设置不存在,它会从 HKLM 中读取它。该应用程序始终将值写入 HKCU。另一种变体是将默认设置构建到程序中,而不是 HKLM,这样可以简化安装程序。

最重要的是,HKEY_USERS 的迭代并不是我能想到的任何问题的好解决方案。

关于c++ - 为所有用户设置注册表值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5715045/

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