如何使用inno-setup将所有用户写入其HKEY_CURRENT_USER

时间:2010-11-04 15:06:03

标签: inno-setup registry

我正在使用inno-setup安装必须从HKEY_CURRENT_USER \ SOFTWARE读取的第三方软件。 我需要将此值写入所有用户,我该怎么做?

4 个答案:

答案 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复制。通过这种方式,您的应用将处理安装后添加的新用户。