2012-03-31 44 views
3

我试图调用从Silverlight公开的各种API,这些API只有在它们是注册的自动化服务器的一部分时才有可能,并且具有相应的progid。例如,单词将是“Word.Application”。我如何获得所有注册的服务器与他们各自的progids列表?如何获得所有COM自动化服务器的列表?

我发现组件服务管理单元中,但我无法找到我知道在那里的ProgID。编辑:管理单元看起来应该在那里,我发现一个属性窗口,显示一些COM +和DCOM应用程序的应用程序ID,但我找不到明显的服务器,如Word。 COM +树只包含六个条目。

+1

这只是不是如何工作。您需要先知道progid或CLSID,然后COM才能从注册表中找到实现它的可执行文件。这样做是希望你知道如何正确使用服务器,即使你不知道它的作用。这是行不通的。 – 2012-03-31 06:32:25

+0

@passant我认为你误解了我想知道的事情,但你仍帮助我。你在说什么意味着在注册表中有一个目录。所以我应该能够从注册表中获得列表,我只需要知道确切的地方。你知道更多吗? – John 2012-03-31 17:03:44

+0

@passant啊,我想我找到了。这是注册表中的整个HKEY_CLASSES_ROOT文件夹。这就是我想知道的。 – John 2012-03-31 17:07:19

回答

5

自动化服务器列表似乎是在HKEY_CLASSES_ROOT下的注册表。从Silverlight中,密钥的名称是progid,CLDID是称为CLSID的子密钥的值。

Hans Passant对我提到注册表的问题发表了评论后,我发现了这个。

1

PrimalScript,通过Sapien的科技公司,有一个对象浏览器,不列出所有可用的COM对象/接口的系统上的表现非常出色。

相关问题