如何以跨平台方式仅使用Python提取ActiveX COM DLL的GUID?
我遇到了pythoncom
,它与pywin32
一起提供。它有一个LoadTypeLib
功能,可以做到这一点:
import pythoncom
dll = pythoncom.LoadTypeLib("C:\pathto\my.dll")
print str(dll.GetLibAttr()[0])
这比我目前依赖外部CLI应用程序的解决方案要好,但跨平台解决方案会更好,因为我认为pywin32无法轻松安装在Linux CI上。
我最终使用了出色的comtypes
包:
from comtypes.typeinfo import LoadTypeLibEx
lib = LoadTypeLibEx("C:\pathto\my.dll")
print lib.GetLibAttr().guid
代码实际上是相同的;它实际上从OleAut32
调用了相同的LoadTypeLib
,所以它只是Windows,但comtypes
可以通过pip安装,这使得分发更容易。