Получение полного пути рекламируемого ярлыка извне MSI
Я работаю над тем, чтобы получить полный путь к каталогу файла ключа компонента, рекламируемого ярлыка с использованием VBScript, из-за пределов MSI.
Я читал, что мы можем использовать MsiGetComponentPath
& MsiGetShortcutTarget
функция. Ниже приведен код, который я собрал, но я не получаю желаемый вывод - это путь к файлу ключа на основе столбца компонента в таблице ярлыков. Любая помощь приветствуется.
Set Installer = CreateObject("WindowsInstaller.Installer")
Set Database = Installer.OpenDatabase("C:\StackExchange_Test.msi", 0)
Set View = Database.OpenView("SELECT `Target`,`Component_` From `Shortcut`")
View.Execute
Set rec = View.Fetch
Do While (rec Is Nothing) = False
MsgBox(rec.StringData(1) & " " & rec.StringData(2) & " " & rec.StringData(3) _
& " " & rec.StringData(4) & " " & rec.StringData(5))
Path = Installer.ComponentPath (FnMSIFetch("ProductCode"), rec.StringData(2))
Msgbox (Path)
Set rec = View.Fetch
Loop
Function FnMSIFetch(varProperty)
Set Database = Installer.OpenDatabase("C:\StackExchange_Test.msi", 0)
Dim SQL
SQL = "SELECT * FROM Property WHERE Property = '" & varProperty & "'"
Dim View
Set View = Database.OpenView(SQL)
View.Execute
Dim Record
Set Record = View.Fetch
FnMSIFetch=Record.StringData(2)
End Function