获取 MSI 属性 python
Getting MSI properties python
我有一个 MSI 文件,我正在尝试提取在文件属性的“详细信息”选项卡中指定的一些参数。
我找到了 msilib,其中 SummaryInformation.GetProperty(field) 看起来像是要走的路,但我不明白如何使用它。我如何 'connect' 它到现有的 MSI 文件而不是正在创建的文件?
msi 文件包含 cab 文件和数据库格式的信息。
有关其结构和查看方式的更多信息,请参见 link:MSI structure answer.
我从未使用过 python msilib,但通过阅读文档,我的猜测是:
要获取 db 对象,请使用如下内容:
dbobject = msilib.OpenDatabase(path, msilib.MSIDBOPEN_READONLY)
如果你想要 summary info 中的内容,那么你可以这样做:
info = dbobject.GetSummaryInformation(1)
prop = info.GetProperty(field)
如果您需要的信息在其中一个数据库表中,那么您应该对其执行 sql 查询:
view = dbobject.OpenView(sql)
rec = view.Execute(params)
str_val = rec.GetString(field)
我有一个 MSI 文件,我正在尝试提取在文件属性的“详细信息”选项卡中指定的一些参数。
我找到了 msilib,其中 SummaryInformation.GetProperty(field) 看起来像是要走的路,但我不明白如何使用它。我如何 'connect' 它到现有的 MSI 文件而不是正在创建的文件?
msi 文件包含 cab 文件和数据库格式的信息。 有关其结构和查看方式的更多信息,请参见 link:MSI structure answer.
我从未使用过 python msilib,但通过阅读文档,我的猜测是:
要获取 db 对象,请使用如下内容:
dbobject = msilib.OpenDatabase(path, msilib.MSIDBOPEN_READONLY)
如果你想要 summary info 中的内容,那么你可以这样做:
info = dbobject.GetSummaryInformation(1) prop = info.GetProperty(field)
如果您需要的信息在其中一个数据库表中,那么您应该对其执行 sql 查询:
view = dbobject.OpenView(sql) rec = view.Execute(params) str_val = rec.GetString(field)