获取Minitab活动实例而不是创建新实例

时间:2014-09-22 08:46:45

标签: c# c#-4.0 process com minitab

我正在尝试使用minitab自动C# program。我可以使用此代码打开新的minitab窗口。

    MtbApp = new Mtb.Application();
    MtbProj = MtbApp.ActiveProject;
    MtbUI = MtbApp.UserInterface;
    MtbUI.Visible = true;

此代码创建新的minitab对象并打开新的minitab窗口。

现在,我的问题是,我不想打开新的minitab窗口。我想使用已经打开的窗口并执行命令。为此我做了

MtbApp = Marshal.GetActiveObject("Mtb.Application") as Mtb.Application;

但它总是抛出异常

操作不可用(HRESULT异常:0x800401E3(MK_E_UNAVAILABLE))

我在谷歌搜索了这个,我发现mtb应该在Running Object Table。我不知道ROT在哪里,也不知道如何在mtb中添加ROT

我也尝试过打开minitab窗口句柄

    Process[] pr = Process.GetProcessesByName("Mtb");
    Process p = pr[0];
    int hwnd = (int)Process.GetProcessById(pr[0].Id).MainWindowHandle;

但我不知道如何为MtbApp对象分配句柄,因为MtbApp句柄是只读属性。

任何帮助将不胜感激。

由于

0 个答案:

没有答案
相关问题