从MSI外部获取广告快捷方式的完整路径

时间:2013-05-25 12:49:28

标签: vbscript windows-installer directory-structure advertised-shortcut msitransform

我致力于从MSI外部获取组件密钥文件的完整目录路径,使用VBScript获取广告快捷方式。

我知道我们可以使用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

0 个答案:

没有答案