AutoHotKey 스크립트에 의해 시작되는 NodeJS 스크립트가 있습니다. 종료 할 때 특정 값을 반환하려면이 NodeJS 스크립트가 필요하므로 AHK 스크립트에서 검색하고 사용할 수 있습니다 . AHK 스크립트에서 직접 프로세스에 의해 반환 된 값을 얻을 수 있지만 원하는 것은 아닙니다.
내 프로세스가 특정 값을 반환하도록하려면 어떻게해야합니까?
지금까지 사용해 보았습니다.
process.exit(myValue);
과
process.exitCode = myValue;
과
process.stdout.write(myValue)
그러나이 중 어느 것도 작동하지 않습니다.
다음은 내 AHK 스크립트입니다 (잘 작동 함).
RunWait, C:\path_to_node\node.exe C:\path_to_script\index.js,,, output
MsgBox, %output%
출력은 프로세스 ID (PID)뿐입니다. WSH 래퍼에서 .js를 실행해야하며 .js는 다음과 같이 StdOut을 반환해야합니다.
다음은 AHK "비밀 소스"RunWaitStdOut입니다.
MsgBox % RunWaitStdOut("C:\path_to_script\index.js")
RunWaitStdOut(command)
{
shell := ComObjCreate("WScript.Shell")
exec := shell.Exec(ComSpec " /c node " command)
return exec.StdOut.ReadAll()
}
그리고 그 동안 .js의 끝에 StdOut을 생성하는 다음과 같은 내용이 있어야합니다.
process.stdout.write("The Result this javascript returns to AHK is " + myValue);
그리고 StdOut은 문자열이므로 myValue
숫자 등의 경우 toString()
메서드 가 필요할 수 있습니다 (OP의 주석에 따라 OP에서 알 수 있음).
process.stdout.write( myValue.toString() );
Hth,
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다