1

我正在尝试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知道如何添加mtbROT

我还尝试打开 minitab 窗口句柄

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

但我不确定如何将句柄分配给 MtbApp 对象,因为 MtbApp 句柄是只读属性。

任何帮助将不胜感激。

谢谢

4

0 回答 0