C#运行后关闭JMP我正在尝试使用简单的C#程序启动插件(以及其他一些东西)。
它很有效,问题在于。 如果JMP尚未打开,则一旦运行完毕,JMP就会退出。 如果我不需要,我真的不想让控制台保持打开状态。 是否有一个命令会在执行后将其保持打开状态?
Re:C#运行后关闭JMP如果在应用程序对象上使用“EnableInteractiveMode(True)”,则将启用“退出”菜单项,您无需通过“任务管理器”终止该过程。
Brian Corcoran
JMP开发
Re:C#运行后关闭JMP我做了一些测试,如果您使用的是Windows窗体应用程序与控制台应用程序,则行为会有所不同。我假设你正在使用基于你的OP的控制台应用程序。我之前的帖子基于使用Windows窗体应用程序。
如果你有一个控制台应用程序,那么执行类似myJMP.ShowStartupWindow()的操作应该会在程序完成执行时阻止JMP关闭。
该方法将打开JMP并在程序完成执行后保持打开状态。
static void Main(string[] args)
{
JMP.Application myJMP;
myJMP = new JMP.Application();
myJMP.Visible = true;
myJMP.ShowStartupWindow();
}
但是,这种方法存在一个问题。您需要在任务管理器中终止jmp.exe,因为Exit JMP菜单项已禁用。(实际上,我之前提供的代码也有这个问题。)

编辑09MAR17(面向未来的人):
我已经意识到我的原始评论(上面或下面,取决于你在哪里阅读)是正确的,这篇文章上面的这篇文章中的信息不能一直有效。下面是我提出的一个解决方法,它创建一个虚拟表并关闭它以使JMP保持打开状态。我还补充说 @briancorcoran 建议使用myJMP.EnableInteractiveMode(true)启用'Exit JMP'菜单项。
static void Main(string[] args)
{
JMP.Application myJMP;
myJMP = new JMP.Application();
myJMP.Visible = true;
myJMP.ShowStartupWindow();
myJMP.EnableInteractiveMode(true);
// Needed to keep JMP from automatically closing
JMP.DataTable dt = myJMP.NewDataTable("test");
myJMP.RunCommand(@Close(Data Table("test""), NoSave)");
}
@vince_faller ,仅供参考
Re:C#运行后关闭JMP很高兴知道。 我可以给它一个虚拟变量吗?
Re:C#运行后关闭JMP如果除了JMP.Application之外没有任何引用,JMP将关闭。
在下面的示例中,JMP将保持打开状态,因为我有一个JMP数据表的引用。
JMP.Application myJMP;
JMP.DataTable dt;
myJMP = new JMP.Application();
myJMP.Activate();
myJMP.Visible = true;
myJMP.ShowStartupWindow();
myJMP.RunCommand(@Open("$SAMPLE_DATA\Big Class.jmp"")");
dt = myJMP.GetTableHandleFromIndex(1);
Re:C#运行后关闭JMP刚试过JMP 13中的C#自动化示例;在关闭示例和IDE之后,它使JMP运行。
打开C#app,然后按按钮自动执行JMP
关闭C#app,JMP保持打开状态
我想这是一个存在的证明,你可以做你所要求的,但我不确定是什么使它工作。我确实遇到了关于发布接口的评论 http://stackoverflow.com/questions/18154315/excel-process-not-closing 对于想要相反行为的人。