Re: 実行中のスクリプトが暗号化されているかどうかを確認する方法これのウィッシュリストアイテムを作成しました
Re: 実行中のスクリプトが暗号化されているかどうかを確認する方法@ポールディーン、
これを試したことはありませんが、暗号化されたスクリプトが Encrypted() 関数でラップされていることがわかります。 これは、ターゲット スクリプトを include() できる可能性があることを意味し、スクリプトを解析して、関数ヘッダーの 1 つに Encrypted() ヘッダーが含まれているかどうかを確認します。漠然とした回答ですが、可能性はあります。

これは、JMP Documentation Library.pdf 内の、JMP 17.0.0 の情報をスクリーンショットした場所です。

Re: 実行中のスクリプトが暗号化されているかどうかを確認する方法//
// This reports if the isEncrypted function is
// encrypted, NOT some file it might be called from.
// It works because part of the JSL encryption tries
// to prevent the internals (like expressions) of
// your JSL from being converted to text that could
// be printed.
//
isEncrypted = Function( {},
{x},
x = Expr( 1 + 1 );
Char( Name Expr( x ) ) != "1 + 1";
);
write("\!n isEncrypted()=",isEncrypted(),"\!n");Re: 実行中のスクリプトが暗号化されているかどうかを確認する方法私たちの vscode 拡張機能は、インクルードでない限り、エディターから暗号化されたものを実際に実行することさえできません。暗号化がすべてかゼロであると仮定しても安全である場合、私は思う@Craige_Halesおそらく最良の選択肢です。
モジュール固有にする必要がある場合は、式をインクルードとして実行しないため、それは難しくなります (ファイルが保存されず、インクルードされない場合があるため)。
スコープの設定方法によって異なります。includefilelist() を使用する代わりに、ファイルの名前をハードコードすることもできますか?
例えば。スクリプト `test.jsl` を作成しました
Names Default to here(1);
isEncrypted = Left(LoadTextFile("test.jsl"),9)== "//-e6.0.2"; // I had to edit this because that's what my encryption gives.
if(isEncrypted,
print("This script is encrypted"),
print("This script is not encrypted")
);
そのスクリプトを暗号化すると、取得できる vscode の別のスクリプトからそれを含めることができます。

これは間違いなく完璧ではなく、構造について多くのことを前提としています。しかし、それは役に立つのでしょうか?
いずれにせよ、私はGitLab リポジトリ
@ベン_ph多分あなたはより良い回避策を考えることができますか?
Re: 実行中のスクリプトが暗号化されているかどうかを確認する方法ご提案いただきありがとうございます。 私の目標は、VSCode で開発作業を行い、すべてを暗号化してアドインにパッケージ化することでした。 これは、メイン ファイルが暗号化されているかどうかを確認することです。JMP で直接実行するか、VS Code 内で開発モードで実行します。 Craige のソリューションは、私が探していた機能を提供してくれます。
Re: 実行中のスクリプトが暗号化されているかどうかを確認する方法暗号化に注意してください-関数を使用していない限り、打ち負かすのは非常に簡単です-たとえば、1つの関数であり、他に何もない暗号化されたファイルは非常に安全ですが、それがクラスまたは単なる汎用スクリプトである場合、それはOG スクリプトを簡単に取得できます。
実行中のスクリプトが暗号化されているかどうかを確認する方法実行中のスクリプトから、スクリプトが暗号化されているかどうかをチェックしたいと思います。 これは、コード内の変数を変更することなく、スクリプトの開発バージョンとリリース バージョンの間で動作を分離するためです。したがって、次のようなものです:
If( !Script is encrypted(),
//Do bit of code for development version
,
//Do bit of code for release version
)
1 つの方法は、スクリプトが次で始まるかどうかを確認することです。 「//-e12.1」は、すべての暗号化されたスクリプトの先頭にあるようです。
Left(LoadTextFile(IncludeFileList()[1]),8)== "//-e12.1";
ただし、次のように、これは VSCode からは機能しません。

したがって、常にリリース コードを実行することになります。
自動化とスクリプト作成