【发布时间】:2016-12-15 10:22:00
【问题描述】:
许多文件类型可以通过它们的幻数来识别,例如here.
我想判断一个文件是否是 Microsoft 合并模块(请参阅 here)
Microsoft 合并模块(.msm 文件)是否有幻数? 如果不是,我如何以编程方式确定文件是否为合并模块? 我不想依赖文件扩展名 (.msm)。
【问题讨论】:
标签: windows-installer file-type merge-module
许多文件类型可以通过它们的幻数来识别,例如here.
我想判断一个文件是否是 Microsoft 合并模块(请参阅 here)
Microsoft 合并模块(.msm 文件)是否有幻数? 如果不是,我如何以编程方式确定文件是否为合并模块? 我不想依赖文件扩展名 (.msm)。
【问题讨论】:
标签: windows-installer file-type merge-module
我不确定合并模块是否有一个幻数,但如果您希望以某种方式检查通用文件并确定它是否为 .msm,也许您可以这样做:
看看这里的 vbscripts - https://msdn.microsoft.com/en-us/library/windows/desktop/aa372865(v=vs.85).aspx
编写自定义 vb 脚本,尝试在文件上调用 OpenDatabase() 以查看它是否是有效的安装程序数据库文件。
使用 WiRunSQL.vbs 对文件运行一些 SQL 语句,并检查它是否具有带有“ProductName”值的表“Property”。
一个。如果是这样,它是一个 .msi
湾。如果不是,它是一个 .msm
【讨论】:
msilib在python中做到了这一点。我将在下面发布我的完整解决方案。