問題
外部プログラムでファイルを開く必要がある場合は、通常、JSL Open() 関数が機能します。 ただし、JMP がインポート方法を認識しているファイル タイプを開く場合は、外部プログラムでファイルを開くのではなく、インポートしたファイルになる可能性があります。 Excel ファイルを開くことは、これの一般的な使用例です。
解決
これを行うには、JSL RunProgram() 関数を使用できます。 Windows では、プログラムが閉じるまで JMP がフリーズしないように、また JMP を閉じる前にプロセスを閉じる必要がないように、特別な処理が必要です。
/* Function: openFileInOSDefault
Open file in the operating system default program
Arguments:
filepath - local path file
*/
openFileInOSDefault = Function({filepath},
If( Host is( "Windows" ),
Run Program(
Executable( "PowerShell.exe" ),
Options(
Eval Insert( "\[-Command "& {Start-Process '^filepath^'}"]\" )
),
Read function( "text" )
);
,
RunProgram(
Executable( "/usr/bin/open" ),
Options( filepath ),
ReadFunction( "text" )
)
);
);
討論
一般に、これがどのように機能するかを正確に理解する必要はないと思います。これをスクリプトにプラグインして、開きたいファイルへのパスで呼び出すことができます。