0

pywin32客户端 COM 的文档显示了这种实例化 COM 对象的基本方法:

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

我正在尝试使用PersistentZoneIdentifier类似于操作区域标识符以指定文件从何处下载的工作 - The Old New Thing - MSDN blogs。该类,如注册表HKEY_CLASSES_ROOT\CLSID\{0968e258-16c7-4dba-aa86-462dd61e31a3}所示,没有对应的ProgID.

我看到有一个底层pythoncom.CoCreateInstance函数接受一个CLSID实例化和一个IID显然从中查询的函数。

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


问题是:

  • /underlying WinAPI 中是否有一种pywin32按名称查找上述 GUID 的常用方法?(不建议手动搜索注册表)
  • 或者也许有其他方法可以用名称实例化该对象?

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

4

1 回答 1

0

没有也不能有任何“库存机制”来实例化一个类/通过其名称查询接口,因为它们的名称不能保证是唯一的,这与 GUID 不同。

于 2016-11-13T03:35:13.230 回答