获取MSI属性python

时间:2015-01-05 16:16:44

标签: python windows-installer

我有一个MSI文件,我正在尝试提取文件属性的“详细信息”选项卡中指定的一些参数。

我找到了msilib,其中SummaryInformation.GetProperty(字段)看起来像是要走的路,但我不明白如何使用它。如何将它“连接”到现有的MSI文件而不是正在创建的文件?

1 个答案:

答案 0 :(得分:4)

msi文件包含cab文件和数据库格式的信息。 有关其结构以及如何查看结构的更多信息,请参阅此链接:MSI structure answer

我从未使用python msilib,但通过阅读文档我的猜测就是这样:

  1. 获取db对象,使用类似下面的内容: dbobject = msilib.OpenDatabase(path, msilib.MSIDBOPEN_READONLY)

  2. 如果您想要summary info中的某些内容,那么您可以执行以下操作: info = dbobject.GetSummaryInformation(1) prop = info.GetProperty(field)

  3. 如果您需要的信息位于其中一个db表中,那么您应该对它进行SQL查询: view = dbobject.OpenView(sql) rec = view.Execute(params) str_val = rec.GetString(field)