Вы знаете, что GetActiveObject просто может получить COM-объект первого открытого приложения.Как получить все запущенные объекты?Например, я запускаю два приложения Excel, Как получить два объекта Excel в коде C ++?
Как обычно говорит Ганс, существует только один экземпляр Excel.Если есть только один экземпляр, он откажется открывать один и тот же документ дважды.
Но их может быть несколько, как правило, если секунда была запущена явно.В этом случае он может открыть один и тот же файл (хотя вы получите предупреждение о блокировке).
Они могут или не могут оба появляться в таблице запущенных объектов.Используйте средство просмотра ROT или что-то подобное, чтобы определить, так ли это:
http://social.msdn.microsoft.com/Forums/en-US/vsx/thread/ccccc9bd-f21a-4f74-a3f0-64a594fa1b16
Наконец, вы можете рассмотреть возможность использования Microsoft UI Automation: