我正在使用inno-setup安装必须从HKEY_CURRENT_USER \ SOFTWARE读取的第三方软件。 我需要将此值写入所有用户,我该怎么做?
答案 0 :(得分:3)
基本上你不能这样做(以简单和支持的方式)。为此,需要加载所有用户配置单元,并不一定适用于所有用户。
您可以写入HKEY_USERS\.DEFAULT
下的默认配置文件,这将影响所有新用户配置文件,或者您可以在HKEY_LOCAL_MACHINE
下写入计算机配置单元。< /击>
可能首选的选项是为每个用户单独运行设置,例如作为登录脚本的一部分。
答案 1 :(得分:2)
正如0xA3所说,你做不到。其中一个主要原因是Roaming Profiles。基本上,特定用户的配置文件数据此时甚至可能不在机器上,或者它可能是陈旧的副本。
如果您需要适用于所有用户的设置,则首选HKEY_LOCAL_MACHINE。如果您需要为所有用户设置默认,请将默认存储在HKEY_LOCAL_MACHINE中,如果他们当前没有,则将其复制到用户个人资料中那里的巴尔德。
答案 2 :(得分:0)
您可以考虑在应用运行时查找当前用户密钥,如果没有找到,则会显示一条修复注册消息,该修复注册表会向当前用户添加密钥。我有类似的情况,这就是我的工作。
答案 3 :(得分:0)
HKEY_CURRENT_USER只是一个指向:HKEY_USERS \安全ID(SID)的指针,所以如果你真的想这样做,那么你可以迭代所有的HKEY_USERS(但是这只包括当前登录到系统的用户)。
更好的解决方案可能是在您的应用中检查是否已为HKEY_CURRENT_USER设置设置,以及是否从HKEY_LOCAL_MACHINE复制。通过这种方式,您的应用将处理安装后添加的新用户。