如何分别在ALLUSERS和CurrentUser注册表中注册条目

本文关键字:注册表 注册 CurrentUser ALLUSERS | 更新日期: 2023-09-27 18:10:27

我想安装注册表值从一个REG文件基于(任何人使用这台计算机)的所有用户或仅为我(当前用户)使用InstallShield基本MSI项目。

如果用户选择All Users,那么注册表项应该转到[HKEY_CLASSES_ROOT]。如果用户选择当前用户,则注册表项应进入HKCU'Software'Classes'CLSID

请帮忙吗?

谢谢

如何分别在ALLUSERS和CurrentUser注册表中注册条目

Windows Installer默认这样做。HKEY_CLASSES_ROOT被自动重定向到HKEY_CURRENT_USER'Software'Classes。

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

InstallShield的注册表视图显示了HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE和HKEY_USER_SELECTABLE。导入REG文件,它将与HKEY_CURRENT_USER或HKEY_LOCAL_MACHINE关联。然后将导入的键拖动到HKEY_USER_SELECTABLE hive中。现在,密钥将在安装过程中基于每用户或每台机器(ALLUSERS属性)创建。

另外,如果你告诉InstallShield从你的DLL中提取COM数据(而不是使用你的regfile),那么COM元数据将进入COM"表"(AppId, ProgId, Class等),Windows Installer仍然会根据每用户/每机器的概念将数据记录到HKEY_LOCAL_MACHINE'Classes或HKEY_CURRENT_USER'Classes。