我正在尝试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 句柄是只读属性。
任何帮助将不胜感激。
谢谢