2781_zh-TW
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