你如何枚举WIN32OLE可用的服务器?

时间:2011-02-03 23:13:50

标签: ruby com activex win32ole

无法找到这个简单的答案...... 无论如何,我已经看到了一些像这样的WIN32OLE代码:

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

哪个有效。我的问题是,怎么可能(用任何编程语言)想出那个字符串?像枚举所有可用的服务器或不是什么?我的谷歌在这里让我失望。

感谢。 -r

更多资源(其中一些回答我的问题,我相信 - 不知道为什么我之前没有看到这些)

How to list all ActiveX controls? axhelper看起来不错,因为它也显示了产品名称,这就是VB显示的组件名称。

意识到显然在axhelper中被列为“组件”的东西并不意味着你不能在你的VBscript中使用它(例如:如果你在VB中插入“MS TV视频组件”,你可以做一个Imports MSVidCtlLib然后突然可以访问MSVidWebDVD等其他东西。

How to enumerate all ActiveX elements with WMI?

How to list all installed ActiveX controls?虽然那里的C代码似乎没有列举所有这些......

1 个答案:

答案 0 :(得分:0)

据我了解你需要找到所有注册的COM服务器?如果是这样,您可以枚举注册表项:HKLM / Software / Classes / CLSID / {class_id} / ProgId。

您也可以尝试使用AxMan中的 axscan 实用程序。它是开源的,因此您可以根据自己的目的进行修改。