2010-02-04 89 views
3

我正在嘗試從MSI和MST文件中獲取信息並將其寫入文本文件的腳本。我實現了讀取MSI文件。但是,我收到以下消息。用vbscript讀取MST文件

 
Msi API Error 80004005: OpenDatabase, DatabasePath, OpenMode 
1:2219 2: 3:4: 

我開這樣的

 
Set installer = Wscript.CreateObject("WindowsInstaller.Installer") : CheckError 
Dim database : Set database = installer.OpenDatabase(FileName, msiOpenDatabaseModeReadOnly) : CheckError 

它工作得很好,與MSI文件的文件。我相信MST文件應該以不同的方式閱讀。

如何使用vbscript讀取MST文件?

回答

3

我還沒有嘗試過自己,但根據MSDN,要查看轉換文件(MST),您需要打開MSI數據庫,然後使用ApplyTransform方法和msiTransformErrorViewTransform參數。這會給你一個臨時的_TransformView表,你可以查詢獲得所需的信息。

所以,你的代碼應該是這樣的:

Const msiOpenDatabaseModeReadOnly = 0 
Const msiTransformErrorViewTransform = 256 
Dim installer, database 

Set installer = CreateObject("WindowsInstaller.Installer") : CheckError 
Set database = installer.OpenDatabase(MSIFileName, msiOpenDatabaseModeReadOnly) : CheckError 
database.ApplyTransform MSTFileName, msiTransformErrorViewTransform : CheckError 
+0

做一些更多的研究後,我不得不做的正是你有什麼建議。好處是,如果您不提交由MST文件應用的更改,則MSI文件在磁盤中保持不變。 – Omar