COM:如何获取所有正在运行的对象

时间:2012-01-04 06:56:06

标签: c++ visual-c++ com

您知道GetActiveObject只能获取第一个打开的应用程序的COM对象。如何获取所有正在运行的对象?例如我运行了两个Excel应用程序,如何用C ++代码获取两个Excel对象?

1 个答案:

答案 0 :(得分:1)

汉斯说,通常只有一个Excel实例。如果只有一个实例,它将拒绝两次打开同一文档。

但可能不止一个,通常是明确启动第二个。在这种情况下,它可能会打开相同的文件(虽然您会收到有关锁定的警告)。

它们可能会也可能不会出现在运行对象表中。使用ROT查看器或类似的东西来确定是否是这种情况:

http://social.msdn.microsoft.com/Forums/en-US/vsx/thread/ccccc9bd-f21a-4f74-a3f0-64a594fa1b16

最后,您可以考虑使用Microsoft UI Automation: