2011-02-03 21 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。它是开源的,所以你可以为自己的目的修改它。