Re : Comment vérifier si le script en cours d'exécution est chiffréJ'ai créé un élément de liste de souhaits pour cela
Re : Comment vérifier si le script en cours d'exécution est chiffré@pauldeen ,
Je n'ai pas essayé cela, mais je vois que les scripts chiffrés sont enveloppés dans la fonction Encrypted(). Cela signifie que vous pourrez peut-être inclure () un script cible, analyser le script pour voir si l'un des en-têtes de fonction contient () l'en-tête Encrypted ().C'est une réponse vague, mais c'est peut-être possible.

Voici où, dans la bibliothèque de documentation JMP.pdf, j'ai capturé les informations à partir de JMP 17.0.0.

Re : Comment vérifier si le script en cours d'exécution est chiffré//
// 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 : Comment vérifier si le script en cours d'exécution est chiffréNotre extension vscode ne peut même pas vraiment exécuter des éléments cryptés à partir de l'éditeur, à moins qu'il ne s'agisse d'une inclusion.S'il est sûr de supposer que le cryptage est tout ou rien, alors je pense @Craige_Hales est probablement la meilleure option.
Si vous avez besoin qu'il soit spécifique au module, c'est plus difficile car nous n'exécutons pas l'expression en tant qu'inclusion (parce que parfois le fichier n'est pas enregistré, donc ce ne serait pas une inclusion).
Cela dépend de la façon dont vous configurez les étendues.Peut-être pourriez-vous simplement coder en dur le nom du fichier au lieu d'utiliser l'includefilelist() ?
Par exemple.J'ai créé un script `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")
);
Si je crypte ce script, incluez-le à partir d'un autre script dans vscode que je peux obtenir.

Ce n'est certainement pas parfait et suppose BEAUCOUP sur votre structure.Mais peut-être que c'est utile ?
Quoi qu'il en soit, j'ai créé un problème dans le Dépôt GitLab
@ben_ph peut-être pouvez-vous penser à une meilleure solution de contournement?
Re : Comment vérifier si le script en cours d'exécution est chiffréMerci pour toutes vos suggestions! Mon objectif était de faire du travail de développement dans VSCode, puis de chiffrer et de regrouper le tout dans un complément. Il s'agit donc de vérifier si le fichier principal est chiffré, lorsqu'il est exécuté directement dans JMP ou en mode développement tout en restant dans VS Code. La solution de Craige me donne la fonctionnalité que je recherchais !
Re : Comment vérifier si le script en cours d'exécution est chiffréFaites attention en vous appuyant sur le cryptage - il est assez simple à battre à moins que vous n'utilisiez des fonctions - comme dans, un fichier crypté qui est une fonction et rien d'autre n'est assez sécurisé, mais s'il s'agit de classes ou simplement d'un script générique, c'est assez facile de sortir le script OG.
Comment vérifier si le script en cours d'exécution est chiffréÀ partir d'un script en cours d'exécution, je voudrais vérifier si le script est crypté ou non. Il s'agit de séparer le comportement entre les versions de développement et les versions de publication d'un script sans avoir à modifier les variables dans le code.Donc quelque chose comme :
If( !Script is encrypted(),
//Do bit of code for development version
,
//Do bit of code for release version
)
Une façon est de vérifier si le script commence par "//-e12.1" qui semble être au-dessus de tous les scripts chiffrés.
Left(LoadTextFile(IncludeFileList()[1]),8)== "//-e12.1";
Mais cela ne fonctionne pas à partir de VSCode car cela donne :

vous exécuterez donc toujours le code de version.
Automatisation et script