小编abe*_*rry的帖子

如何从MSI文件中获取[二进制数据]值

我正在使用python msilib库读取MSI文件.我的目标是从二进制表中提取[二进制数据]并转储到文件中.(使用ORCA工具,我们可以通过双击[Binary Data]单元格并写入文件来提取二进制数据)

我找不到任何msilib方法来获取二进制数据.它有使用Record.GetString(field)获取字符串数据的方法.但正如预期的那样,这对[二进制数据]不起作用并给出错误.

这是代码片段

import msilib
# msi file path which is to be read
msiFilePath = "C:/msi/test.msi"
dbObj = msilib.OpenDatabase(msiFilePath, msilib.MSIDBOPEN_READONLY)
sqlQuery = "select * from Binary"
view = dbObj.OpenView(sqlQuery)
view.Execute(None)
cur_record = viewObj.Fetch()
# In Binary table; Column no 1 have string data and Column # 2 have [Binary Data]
cur_record.GetString(2)
Run Code Online (Sandbox Code Playgroud)

执行时: -

Traceback (most recent call last):
File "<pyshell#17>", line 1, in <module>
cur_record.GetString(2)
_msi.MSIError: unknown error 70c
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

python windows-installer binary-data

0
推荐指数
1
解决办法
1165
查看次数

标签 统计

binary-data ×1

python ×1

windows-installer ×1