Re: 실행 중인 스크립트가 암호화되었는지 확인하는 방법이를 위해 위시리스트 항목을 만들었습니다.
Re: 실행 중인 스크립트가 암호화되었는지 확인하는 방법@폴딘 ,
나는 이것을 시도하지 않았지만 암호화 된 스크립트가 Encrypted() 함수에 래핑되어 있음을 알 수 있습니다. 즉, 대상 스크립트를 include()하고 함수 헤더 중 하나에 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 레포
@ben_ph 더 나은 해결 방법을 생각할 수 있습니까?
Re: 실행 중인 스크립트가 암호화되었는지 확인하는 방법귀하의 제안에 감사드립니다! 내 목표는 VSCode에서 개발 작업을 수행한 다음 모든 것을 추가 기능으로 암호화하고 패키징하는 것이었습니다. 따라서 이것은 JMP에서 직접 실행되거나 여전히 VS Code 내에서 개발 모드로 실행될 때 기본 파일이 암호화되었는지 확인하는 것입니다. Craige의 솔루션은 내가 찾던 기능을 제공합니다!
Re: 실행 중인 스크립트가 암호화되었는지 확인하는 방법암호화에 주의하십시오. 기능을 사용하지 않는 한 매우 간단합니다. 하나의 기능만 있는 암호화된 파일은 매우 안전하지만 클래스나 일반 스크립트인 경우 OG 스크립트를 꺼내기가 아주 쉽습니다.
실행 중인 스크립트가 암호화되었는지 확인하는 방법실행 중인 스크립트에서 스크립트가 암호화되었는지 여부를 확인하고 싶습니다. 이것은 코드에서 변수를 변경할 필요 없이 스크립트의 개발 버전과 릴리스 버전 사이의 동작을 분리하기 위한 것입니다.그래서 다음과 같습니다.
If( !Script is encrypted(),
//Do bit of code for development version
,
//Do bit of code for release version
)
한 가지 방법은 스크립트가 다음으로 시작하는지 확인하는 것입니다. "//-e12.1"은 모든 암호화된 스크립트의 맨 위에 있는 것으로 보입니다.
Left(LoadTextFile(IncludeFileList()[1]),8)== "//-e12.1";
그러나 이것은 다음과 같이 VSCode에서 작동하지 않습니다.

따라서 항상 릴리스 코드를 실행합니다.
자동화 및 스크립팅