2014-09-02 88 views
0

如何以跨平臺方式僅使用Python提取ActiveX COM DLL的GUID?使用Python從ActiveX COM DLL中提取GUID

我碰到了pythoncom,它配備了pywin32。它有一個LoadTypeLib功能,可以做到這一點:

import pythoncom 
dll = pythoncom.LoadTypeLib("C:\\path\to\\my.dll") 
print str(dll.GetLibAttr()[0]) 

這比我目前的解決方案,它依賴於外部CLI應用程序,但是更好的跨平臺解決方案,甚至會更好,因爲我不相信pywin32可以輕鬆安裝在Linux CI上。

回答

0

我最終使用的精彩comtypes包:

from comtypes.typeinfo import LoadTypeLibEx 
lib = LoadTypeLibEx("C:\\path\to\\my.dll") 
print lib.GetLibAttr().guid 

的代碼實際上是相同的;它從字面上調用OleAut32相同的LoadTypeLib,所以它是僅限於Windows的,但comtypes可通過pip進行安裝,這使得分發更容易。