2017-10-12 54 views
0

我期望能夠在Windows註冊表中的鍵中搜索特定的字符串。我的挑戰是,在可能未知的密鑰路徑中有子文件夾。例如,在此註冊表路徑中:HKLM \ Software \ Wow6432Node \ Microsoft \ CurrentVersion \ Uninstall \ GUID 我可能不一定知道GUID文件夾的名稱,但我需要查找DisplayName中的特定字符串鍵,查看它是否存在於其中一個GUID文件夾下。 InstallShield 2008中是否有命令可以從卸載文件夾級別下搜索該字符串?使用InstallShield 2008 Premier搜索註冊表子項下的特定值

我知道有像RegDBKeyExist命令,但它看起來像你需要提供特定的文件夾名稱在整個路徑做搜索。如果有人遇到這種情況,並可以協助它將不勝感激。謝謝!

回答

0

就你所說的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很高興幫助,蘭迪。 –