2016-11-04 48 views
0

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文檔查看。

+0

將不知所云的GUID分配給一個很好命名的變量,這基本上是ProgID爲您做的。 –

+0

@MarkTolonen這實際上是一個有趣的問題:ProgIDs是否像GIUDs一樣獨特?如果是,那麼這是如何促進的?畢竟,他們的「代」背後沒有「實用的唯一性」算法。 –

+1

[編程標識符(ProgID)是一個可以與CLSID關聯的註冊表項。像CLSID一樣,ProgID標識一個類,但精度較低,因爲它不保證是全局唯一的。](https://msdn.microsoft.com/en-us/library/windows/desktop/dd542719(v = vs 0.85)的.aspx) –

回答

0

沒有,也不可能是任何「股票機制」實例化一個類/查詢一個接口的名稱,因爲他們的名字不保證是唯一的,不像GUID。