2011-10-04 131 views
2

我想基于(使用此计算机的任何人)AllUsers或仅适用于我(当前用户)使用InstallShield Basic MSI项目的REG文件安装注册表值。如何在注册表中为ALLUSERS和CurrentUser单独注册

如果用户选择所有用户,则注册表项应转到[HKEY_CLASSES_ROOT]。如果用户选择当前用户,则注册表项应该到HKCU \ Software \ Classes \ CLSID

请帮忙?

谢谢

回答

2

Windows Installer在默认情况下会执行此操作。 HKEY_CLASSES_ROOT会自动重定向到HKEY_CURRENT_USER \ Software \ Classes以供每个用户安装。

你可以阅读更多关于此这里:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa371168(v=vs.85).aspx

+0

如何避免在用户安装(HKEY_CURRENT_USER)的情况下提示用户批准对话框? – Tarun

+0

确保安装不会写入任何每台计算机位置(HKEY_LOCAL_MACHINE,Program Files等)。例如,每个用户安装应使用用户配置文件夹中的位置。 –

+0

是否可以使用C \ Program File \ Application Name?我是Installshield的新手。在installshield中设置用户配置文件夹的位置?谢谢 – Tarun

1

的InstallShield的注册视图显示荨麻疹HKEY_CURRENT_USER,HKEY_LOCAL_MACHINE和HKEY_USER_SELECTABLE。导入您的REG文件,它将与HKEY_CURRENT_USER或HKEY_LOCAL_MACHINE关联。然后将导入到HKEY_USER_SELECTABLE配置单元的键。现在将在安装过程中根据每用户或每台机器(ALLUSERS属性)创建密钥。另外,如果你告诉InstallShield从你的DLL中提取COM数据(而不是使用你的regfile),那么COM元数据将进入COM“表”(AppId,ProgId,Class等)和Windows Installer仍然会根据每用户/每机器的概念将数据记录到HKEY_LOCAL_MACHINE \ Classes或HKEY_CURRENT_USER \ Classes。