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