2011-02-03 17 views
0

無法找到一個簡單的答案,這一個... 反正我已經看到了一些WIN32OLE這樣的代碼:你如何枚舉WIN32OLE可用服務器?

WIN32OLE.new("MSVidCtl.MSVidWebDVD.1") 

其中一期工程。我的問題是,怎麼可能(用任何編程語言)想出這個字符串呢?像列舉所有可用的服務器或不是什麼?我的谷歌福在這裏失敗了。

謝謝。 -r

更多的資源(其中一些回答我的問題,我認爲 - 不知道爲什麼我沒有看到這些之前)

How to list all ActiveX controls? axhelper看起來不錯,因爲它顯示的產品名稱爲好,這是VB顯示的組件名稱。

認識到,顯然某些被列爲axhelper中的「組件」並不意味着您不能在您的VBScript中使用它(例如:如果您在VB中插入「MS TV視頻組件」,則可以執行導入MSVidCtlLib然後突然其他東西,如MSVidWebDVD都可以訪問)。

How to enumerate all ActiveX elements with WMI?

How to list all installed ActiveX controls?雖然有C代碼似乎並沒有列舉所有的人......

+0

Eugene的回答是正確的。但我能問你爲什麼要這麼做嗎?因爲系統中ProgIds的數量可能會很大。理論上講,與系統中所有軟件的類數相同。必須有更好的方式,不是嗎? – thehouse 2011-02-04 15:17:50

回答

0

,因爲我知道你需要找到所有已註冊的COM服務器?如果是這樣,您可以枚舉註冊表項:HKLM/Software/Classes/CLSID/{class_id}/ProgId。

您也可以嘗試使用axscan實用程序從AxMan。它是開源的,所以你可以爲自己的目的修改它。