在注册表子项下搜索特定值

时间:2017-10-12 20:53:49

标签: registry installshield installscript

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

我知道有像 Uninstall 这样的命令,但看起来你需要在整个路径中提供特定的文件夹名称来进行搜索。如果有人遇到这种情况并且能够提供帮助,我们将不胜感激  谢谢!

1 个答案:

答案 0 :(得分:0)

就您引用RegDBKeyExist InstallScript函数而言,我假设您正在寻找使用InstallScript语言编写的示例。

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

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