以编程方式启动EA

时间:2015-05-26 07:59:57

标签: c# enterprise-architect

我想通过Windows服务打开一个EA会话,并在幕后做一些动作 我使用Repository API,但不知道如何正确初始化它。

    EA.Repository repository = ?;
    repository.OpenFile(@"C:\test.eap");
    repository.Exit();

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

下面的代码示例演示了如何打开EA COM对象并打开EA项目文件,然后获取项目模型列表

// connect to EA COM object     
EA.Repository _repository = new EA.RepositoryClass();
// Open EA project file
bool fileOpened = _repository.OpenFile(filePath);
if(fileOpened)
   Collection models = _repository.Models; // collection of models inside of opened project

答案 1 :(得分:0)

添加对Interop.EA.dll的引用并使用

EA.Repository repository = new EA.RepositoryClass();

答案 2 :(得分:0)

打开正在运行的实例使用(C ++示例)

CLSID clsid;
CLSIDFromProgID(L"EA.App", &clsid);
IUnknown *pUnk = NULL;
IDispatch *pDisp = NULL;
HRESULT hr = GetActiveObject(clsid, NULL, (IUnknown**)&pUnk);
if(SUCCEEDED(hr)) {
  hr = pUnk->QueryInterface(IID_IDispatch, (void **)&pDisp);
}
相关问题