能否通过Enterprise Architect Python API连接已运行EA实例并访问已打开文件?
访问已打开的Enterprise Architect实例(Python实现)
可以实现,无需新建EA实例,直接通过win32com.client.GetObject()获取已运行的EA Repository实例即可,替代原有的Dispatch()方法。
代码示例
原新建实例的代码:
eaRep = win32com.client.Dispatch('EA.Repository') eaRep.OpenFile("Model.eapx")
获取已打开实例的代码:
import win32com.client # 获取正在运行的EA Repository实例 eaRep = win32com.client.GetObject(Class='EA.Repository') # 验证获取结果,打印当前打开的模型路径 print(eaRep.FileName)
注意事项
- 执行代码前必须确保已有EA实例处于运行状态,且已打开目标模型
- 若同时打开多个EA实例,
GetObject可能返回任意一个,可通过检查eaRep.FileName确认是否为目标模型 - 若没有运行的EA实例,调用会抛出异常,建议添加异常处理:
import win32com.client try: eaRep = win32com.client.GetObject(Class='EA.Repository') print(f"成功获取已打开模型:{eaRep.FileName}") except Exception as e: print(f"获取EA实例失败:{str(e)}")
内容的提问来源于stack exchange,提问作者Niramin
相关产品推荐
相关产品推荐

