通过类/接口名实例化没有ProgID的COM对象

时间:2016-11-04 13:28:14

标签: python pywin32 pythoncom

客户端COM的

pywin32文档显示了实例化COM对象的基本方法:

obj = win32com.client.Dispatch("<ProgID>")

我尝试使用类似于Manipulating the zone identifier to specify where a file was download from – The Old New Thing - MSDN blogsPersistentZoneIdentifier。正如HKEY_CLASSES_ROOT\CLSID\{0968e258-16c7-4dba-aa86-462dd61e31a3}所示的注册表所示,该类没有相应的ProgID

我发现有一个基础pythoncom.CoCreateInstance函数接受CLSID实例化,IID显然从中查询。

但这很不方便,因为我必须使用难以理解的GUID而不是人类可读的名称。

问题是:

  • pywin32 /底层WinAPI中是否存在通过名称查找上述GUID的库存方式? (不建议手动搜索注册表)
  • 或者用其他方式用名称实例化该对象?

<子> 我尝试过但失败了:win32com.client.IDispatch(<class/interface name>)pythoncom.IID(<class/interface name>)。当然,还要查看Net,MSDN和PyWin32文档。

1 个答案:

答案 0 :(得分:0)

没有,也不可能是任何股票机制&#34;通过名称实例化类/查询接口,因为与GUID不同,它们的名称不能保证唯一。