2781_ja-JP
C#自動化、JMPアプリケーションの開閉に関する問題こんにちは皆さん、
私はC#を使ってJMPを自動化することに成功しましたが、JMPアプリケーションを開いたり閉じたりすると予期しない動作が起こります。
JMPを開きます。
JMP.Applicationアプリ。
app = new JMP.Application();
これは動作しますが、JMPのインスタンスが既に開いて実行されている場合は、それが乗っ取られます。常に新しいアプリケーションを生成する方法はありますか?
私は閉じる:
app.CloseAllWindows();
app.Quit();
繰り返しますが、これで私が開いたものやハイジャックしたものは閉じられます。開いたものを閉じる方法はありますか?何も開かなかったら、何も閉じないようにしますか?
ありがとうございます。
- ジェフ
PS JMPバージョン7を使用しています。
メッセージはによって編集されました:vJeff再: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のサンプルコードスニペット(C#、Perl、Pythonなどに非常によく似ています) 好きなスクリプトツールを選んでください。
COMオブジェクトへの呼び出しはほとんど同じです。
デフォルト\複数動作
#################################
#COM呼び出しへの簡単なアクセスを可能にするためにTCLにアドオンパッケージをロードする
#ActiveState TCLディストリビューションに含まれていますhttp://www.activestate.com/activetcl/
#www.vex.net/~cthuang/tcom/
#wiki.tcl.tk/1821
パッケージにはtcomが必要です
#既存のセッションにアタッチ
set jmp3 [:: tcom :: ref getactiveobject "JMP.Application"];
#fire up JMP(まだJMPセッションが存在しない場合は、新しいJMPセッションを作成します。存在する場合
それからそれに付きます。秒を作成することはできません/できません)
set jmp [:: tcom :: ref createobject "JMP.Application"];
$ jmp -method Visible 1
自動化のための使い捨てサーバー
#################################
#jmpを起動する(2つの独立したセッションを作成する、または1つの呼び出しで新しいセッションが存在する場合はそれを作成する)
set thing1 [:: tcom :: ref createobject "JMP.Application"];
set thing2 [:: tcom :: ref createobject "JMP.Application"];
$ thing1 - method Visible 1
$ thing2 -method Visible 1
#作成された2つの別々のオブジェクト参照、thing1とthing2に注意してください。それらは独立して制御できます。
宜しくお願いします、
- マット
Comments
There are no comments yet