使用InstallShield 2008 Premier搜索注册表子项下的特定值

问题描述:

我期望能够在Windows注册表中的键中搜索特定的字符串。我的挑战是,在可能未知的密钥路径中有子文件夹。例如,在此注册表路径中:HKLM \ Software \ Wow6432Node \ Microsoft \ CurrentVersion \ Uninstall \ GUID 我可能不一定知道GUID文件夹的名称,但我需要查找DisplayName中的特定字符串键,查看它是否存在于其中一个GUID文件夹下。 InstallShield 2008中是否有命令可以从卸载文件夹级别下搜索该字符串?使用InstallShield 2008 Premier搜索注册表子项下的特定值

我知道有像RegDBKeyExist命令,但它看起来像你需要提供特定的文件夹名称在整个路径做搜索。如果有人遇到这种情况,并可以协助它将不胜感激。谢谢!

就你所说的RegDBKeyExist InstallScript函数我假设你正在寻找用InstallScript语言编写的例子。

要枚举已知密钥的子密钥,您希望使用RegDBQueryKey函数。枚举路径HKLM\Software\Wow6432Node\Microsoft\CurrentVersion\Uninstall的子项后,您需要遍历列表并查询DisplayName键值,以便将其与特定字符串进行比较。这可以通过使用RegDBGetKeyValueEx函数来完成。通过注册表子项枚举的例子在那里:RegDBQueryKey Example

如果您的项目是基本MSI而没有Installscript支持,则可能需要使用常规VisualBasic脚本创建自定义操作(CA)。有很多关于如何用VBScript枚举注册表项的例子。

+0

我完全跳过RegDBQueryKey,这很奇怪,因为我之前已经使用过!谢谢你的回复Slava! – Randy

+0

@Randy很高兴帮助,兰迪。 –