【发布时间】:2012-03-31 00:10:03
【问题描述】:
我正在尝试从 Silverlight 调用作为 COM 公开的各种 API,这只有在它们是已注册自动化服务器的一部分并具有相应的 progid 时才有可能。例如,Word 将是“Word.Application”。如何获取所有已注册服务器及其各自 progid 的列表?
我找到了组件服务管理单元,但在其中找不到我所知道的 progid。编辑:管理单元看起来应该在那里,我找到了一个显示某些 COM+ 和 DCOM 应用程序的应用程序 ID 的属性窗口,但我找不到明显的服务器,例如 Word。 COM+ 树只包含六个条目。
【问题讨论】:
-
这不是它的工作原理。您需要先知道 progid 或 CLSID,然后 COM 才能从注册表中找到实现它的可执行文件。反过来做是希望您知道如何正确使用服务器,即使您不知道它的作用。这行不通。
-
@passant 我认为您误解了我想知道的内容,但您仍然帮助了我。您所说的意味着注册表中有一个目录。所以我应该能够从注册表中获取列表,我只需要知道确切的位置。你知道更多吗?
-
@passant 啊,我想我找到了。它是注册表中的整个 HKEY_CLASSES_ROOT 文件夹。这就是我想知道的。
标签: com automation progid