pywin32
文档进行客户端COM显示实例化COM对象这一基本方法实例化COM对象Manipulating the zone identifier to specify where a file was download from – The Old New Thing - MSDN blogs。该类,如HKEY_CLASSES_ROOT\CLSID\{0968e258-16c7-4dba-aa86-462dd61e31a3}
所示,注册表没有相应的ProgID
。不具有由类/接口名PROGID
我看到有一个潜在的pythoncom.CoCreateInstance
函数接受CLSID
实例化和IID
显然从它查询。
但是这很不方便,因为我必须使用不可理解的GUID而不是人类可读的名称。
的问题是:
- 有没有股票方式
pywin32
/基础WinAPI的通过名称来查找上述的GUID? (不建议手动搜索注册表) - 或者也许有其他方式来实例化名称的对象?
我尝试和失败:win32com.client.IDispatch(<class/interface name>)
,pythoncom.IID(<class/interface name>)
。当然,也可以通过Net,MSDN和PyWin32文档查看。
将不知所云的GUID分配给一个很好命名的变量,这基本上是ProgID为您做的。 –
@MarkTolonen这实际上是一个有趣的问题:ProgIDs是否像GIUDs一样独特?如果是,那么这是如何促进的?毕竟,他们的“代”背后没有“实用的唯一性”算法。 –
[编程标识符(ProgID)是一个可以与CLSID关联的注册表项。像CLSID一样,ProgID标识一个类,但精度较低,因为它不保证是全局唯一的。](https://msdn.microsoft.com/en-us/library/windows/desktop/dd542719(v = vs 0.85)的.aspx) –