2781_zh-CN
C#自动化,发出打开和关闭JMP应用程序大家好,
在使用C#自动化JMP时我取得了很好的成功,但是在打开和关闭JMP应用程序时我遇到了一些意想不到的行为。
我打开JMP:
JMP.Application app;
app = new JMP.Application();
这有效,但是如果我有一个JMP实例已经打开并运行,它就会劫持它。有没有办法总是产生一个新的应用程序?
我关闭:
app.CloseAllWindows();
app.Quit();
再次,这关闭了我打开或劫持的内容。有没有办法关闭我打开的那个?如果我没有打开任何东西,不关闭任何东西?
谢谢!
--Jeff
PS使用JMP版本7。
消息由以下人员编辑:vJeffRe:C#自动化,发出开启和关闭JMP应用程序杰夫:好
我也想知道这种行为,并花了太多时间试图弄清楚如何
为了让它的工作放弃并向优秀的人们询问@ JMP Tech的支持,当然,他们拥有
马上回答。它按设计行事(即作为单个会话,多次使用
自动化服务器),并且如果需要,相对简单地改变为其他行为(即,
多会话单用)。
我被引导到这里的答案:
使用说明11089:如何将JMP作为一次性服务器启用自动化
http://www.jmp.com/support/notes/11/089.html
“传统上,JMP作为多用途自动化服务器运行.... “
就像MS Powerpoint一样
“...要将JMP作为单个用户服务器启用,请修改注册表项... \ Multiple - > ... \ Single“
就像MS Word和Excel一样
也可以看看:
Office自动化服务器的GetObject和CreateObject行为
http://support.microsoft.com/kb/288902
如何获取Office自动化服务器的窗口句柄
http://support.microsoft.com/kb/258511
TCL中的示例代码snipptet(非常类似于C#,Perl,Python等。选择你最喜欢的脚本工具,
对COM对象的调用大致相同。)
默认\多行为
#################################
#将附加软件包加载到TCL中,以便轻松访问COM调用
#包含在ActiveState TCL Distro http://www.activestate.com/activetcl/中
#www.vex.net/~cthuang/tcom/
#wiki.tcl.tk/1821
包需要tcom
#attach to a existing session
set jmp3 [:: tcom :: ref getactiveobject“JMP.Application”];
#fire up JMP(如果尚不存在,则创建一个新的JMP会话。如果确实存在,
然后附上它。不会/不能创建第二个)
set jmp [:: tcom :: ref createobject“JMP.Application”];
$ jmp -method可见1
一次性服务器用于自动化
#################################
#fire up jmp(创建两个独立会话,或者单个调用创建一个新会话,如果存在)
set thing1 [:: tcom :: ref createobject“JMP.Application”];
set thing2 [:: tcom :: ref createobject“JMP.Application”];
$ thing1 -method可见1
$ thing2 -method可见1
#注意创建的两个单独的对象引用,thing1和thing2,它们可以独立控制
最好的祝福,
-Matt
Comments
There are no comments yet