以编程方式启动EA

本文关键字:EA 启动 方式 编程 | 更新日期: 2023-09-27 17:50:42

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

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

任何想法?

以编程方式启动EA

下面的代码示例演示了如何打开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

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

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

打开一个正在运行的实例使用(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);
}