バグか機能??ご存知の方への簡単な質問です -- ウィンドウに <非常にユーザーがこの方法で JMP を終了するのは一般的であるため、ほぼ常にすべての <
誰かがこれを見た/回避策を知っていますか?
私が直面している主な問題は、JMP でイベント ループ Python スクリプトを起動し、実行可能ファイルをウィンドウにアタッチし、その後ローカルホスト ソケット経由で Python と通信することです。ウィンドウを閉じるスクリプトは、Python セッションを正常に終了します。上記の方法で JMP を閉じると、このようなことは起こらず、JMP はフリーズしますが、JMP ウィンドウはすべて消えてしまいます。そのため、JMP はリソースの完全なセット (多くの場合 1GB 以上) とともにタスク マネージャーのリストに残ります。タスクを手動で終了することによってのみ強制終了されます。
RunProgram の結果はアクティブな JMP ウィンドウに結び付けられる必要があるため (イベント ループの目的のためだと思います)、またウィンドウは上で説明した方法で強制的に閉じられるため、適切にシャットダウンできる前に RunProgram 変数が破棄されてしまいます。パイソン。
これは混乱していて、解決策があればいいのですが、今のところ解決策は見つかりません。
自動化とスクリプト作成ウィンドウズRe: バグですか??私はこれを FileSnapper アドインで使用して、同様の問題に対処しました。 RunProgram は実際にはウィンドウに関連付けられているのではなく、複製できるウィンドウのコンテキストに関連付けられています。 クローンまたはウィンドウがコンテキストを参照している限り、コンテキストは破棄されず、RunProgram スクリプトは引き続き機能します。 namespace:evalcontext 変数は、コンテキストを維持する場合を除いて、決して使用されません。 RunProgram 変数/ハンドル (rp かもしれません) も、同じ有効期間が必要なため、同じ名前空間に保持されます。
// addinLoad.jsl - this is the round-about launcher that uses a clone of a transient
// window's evalcontextbox to keep the evalcontext for a callback script alive.
// ideally, this would be, or directly include, FileSnapper.jsl, but that file
// constructs a RunProgram callback script that is somehow tied to a transient
// evalcontext that won't be available at callback time.
Local( {bb},
New Window( "File Snapper Startup", bb = Button Box( "start", Include( "$ADDIN_HOME(com.jmp.hales.FileSnapper)\Additional.jsl" ) ) );
bb << click; // run the script in this window's context
// capture the evalcontext, by cloning the box that references it into our namespace
Namespace( "FileSnapper" ):evalcontext = ((bb << parent) << parent) << clonebox;
bb << closewindow;
if(Namespace( "FileSnapper" ):evalcontext<<CLASSNAME></CLASSNAME>
これらはいずれも文書化されておらず、将来的に機能することは約束されていませんが、何かが変更された場合にはおそらく役立つメッセージがスローされるでしょう。
@jschroedl - ^Q および OnClose スクリプト
Re: バグですか??これありがとう!これから様子を見て、効果があるかどうか確認してみますが、いつも素敵な宝石を贈ってくださるので、きっと効果があると思います!これはウィンドウの問題を回避するのに最適です。
Re: バグですか??@KennethAdamsどういたしまして! ファイルスナッパー(ファイルスナッパー)、それとも文脈を掴む技術でしょうか? どちらのフィードバックも JMP 開発チームにとって有益です。
@ジュリアン- Filesnapper は、私が取り組んでいる JSL を回復するのに役立つかもしれません。また、コンテキスト グラバーは、起動時に起動するアドイン (場合によっては他の場所でも) を作成するときに役立ちます。どちらのアイデアも、JMP にもっと統合できれば、より良いものになる可能性があります。
Re: バグですか??ご注意いただきありがとうございます@Craige_Hales
^Q + OnClose の動作を調査し、将来的に改善できるかどうかを確認するために問題を提出しました。
Re: バグですか??私がこの問題を確認したのは、^Q によって以下のポップアップ (複数の未保存ファイル) が表示され、ユーザーが [なしで保存] をクリックした場合のみであることに注意してください。

Re: バグですか??ウィンドウを削除するトリックを使用して、永続的な Python 接続の実装が完了しました。これで、Python セッション終了スクリプトを AddinUnload.jsl ファイル内に配置でき、機能します (ウィンドウが開いていなくても JMP はフリーズせず、タスクマネージャー経由でのみ強制終了できる隠しセッション)
ご協力ありがとうございました!新しい永続的な Python 接続を使用すると、すべてのデータ クエリを Python にオフロードして並列実行でき、ユーザーが使用できるようになったときに JMP がファイルを取得します。これは素晴らしいことです。
Re: バグですか??ありがとう、今日は助かりました。ユーザーが複数の編集済みファイルを「なし」オプションで閉じるときに問題が発生した場合。エッセイの執筆にサポートが必要で、最高のオンライン エッセイ ライターを探している人は、次のサイトにアクセスしてください。これhttps://writinguniverse.com/essay-types/informative-essays/ページ。 この Web サイトを使用すると、さまざまな Web サイトとそのレビューを比較して、エッセイ プロジェクトについて情報に基づいた選択を行うことができます。 簡単に言うと、この Web サイトは、エッセイ プロジェクトのレビューとオプションを提供することで、人々が適切なオンライン エッセイ執筆サービスを見つけるのに役立ちます。
Re: バグですか??@jschroedlこれに関するアップデートはありましたか?また、ユーザーがウィンドウ リストから複数のウィンドウを選択し、それらをすべて一度に閉じたとき (通常は選択後に Delete キーを押すことによって)、複数の未保存ファイルに関するポップアップが表示される場合、[保存なし] ボタンが何も表示されずに閉じてしまう場合にも、同じ問題が発生していることに気付きました。 OnClose をトリガーします -- JMP を終了しない点を除いて、上記とまったく同じです。
これにより、クリーンアップ スクリプトが実行されず、多くのリソースが未解決のままになる可能性があります。