首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过.NET执行Minitab命令?

如何通过.NET执行Minitab命令?
EN

Stack Overflow用户
提问于 2010-07-02 02:49:04
回答 1查看 5.1K关注 0票数 7

Minitab帮助文件在有限的范围内提供了对此主题的支持,所有示例都是用VB编写的。我是.NET的新手,但我很快就会学会的。这是命令语法中的一些东西。

它们在VB中提供了以下示例:

代码语言:javascript
复制
Dim MtbApp As New mtb.Application
Dim MtbProj As mtb.Project
Dim MtbCom As mtb.Command
Dim i, j As Integer

MtbApp.UserInterface.Visible = True
Set MtbProj = MtbApp.ActiveProject
MtbProj.ExecuteCommand "RANDOM 30 C1 - C2"
MtbProj.ExecuteCommand "REGRESS C1 1 C2"

在C#中,我的代码如下所示

代码语言:javascript
复制
var MtbApp = new Mtb.Application();
var MtbProj = new Mtb.Project();
MtbProj = MtbApp.ActiveProject;
MtbApp.UserInterface.Visible = true;
MtbProj.ExecuteCommand(<command>);

我期望发生的是Minitab应该打开,并且命令应该执行。然而,发生的事情是,两个Minitab实例正在打开,并且都没有显示用户界面,我必须在进程中找到它们。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-07-02 03:22:32

假设您已经添加了对Minitab COM的引用,这应该可以让您开始:

代码语言:javascript
复制
Mtb.Application MtbApp = null;
Mtb.Project MtbProj = null;
Mtb.UserInterface MtbUI = null;

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

MtbUI.Visible = true;
MtbProj.ExecuteCommand("RANDOM 30 C1-C2", Type.Missing); //with C# optional params required
MtbApp.Quit();

Marshal.ReleaseComObject(MtbUI); MtbUI = null;
Marshal.ReleaseComObject(MtbProj); MtbProj = null;
Marshal.ReleaseComObject(MtbApp); MtbApp = null;

在C#中使用COM对象可能很棘手。尤其是当你完成的时候释放它们。

请记住,作为一般规则,永远不要重复。不要这样做:

代码语言:javascript
复制
MtbApp.UserInterface.Visible = true;

而是:

代码语言:javascript
复制
Mtb.UserInterface MtbUI = null;
MtbUI = MtbApp.UserInterface;
MtbUI.Visible = true;

因此,可以稍后释放MtbUI对象。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3160767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档