可以使用以下类似的Python脚本访问正在运行的EA实例:
一个正在运行的 EA 实例可以通过以下方式从 Python 脚本中访问:
from win32com import client
eaApp = client.GetActiveObject("EA.App")
eaRepo = eaApp.Repository
然而,这似乎总是返回第一个启动的实例的COM对象。
假设我们有一个脚本需要启动EA的新实例。我们可以通过调用os.startfile(eapxFile)
并将eapxFile
设为空的EA文件路径来实现。然后它需要导入一些XMI文件,并且需要访问COM对象。
同时,还有其他几个(较旧的)EA实例已打开。如何检索新的EA实例的COM对象?
注意: 如果可以立即访问其COM对象,则启动EA的另一种替代方式当然也是可行的。甚至可以直接使用COM接口。最重要的是,无法使用其他正在运行的EA实例。
DispatchEx
来获取一个“新”的COM对象,如此处所述:https://dev59.com/lGMl5IYBdhLWcg3wJUEC 但这似乎只会冻结我的脚本。 - Benjamin4991