2017-01-06 8 views
1

자식 프로세스로 생성 된 게임이 있습니다. 게임의 원래 .exe 파일로 모든 것이 잘 작동합니다. 그러나, 나는 그것을 최소화하고, 내가 할 수있는 한 멀리 할 수있는 유일한 방법은 실행 파일을 동일한 디렉토리에있는 Windows 바로 가기 (.lnk 파일)을 만들고 실행 옵션을 최소화로 설정하는 것입니다. Node.js를 그렇게 좋아하지 않는다 :node.js가있는 .lnk windows 바로 가기를 생성하면 "UNKNOWN"오류가 발생합니다.

internal/child_process.js:313 
    throw errnoException(err, 'spawn'); 
    ^

Error: spawn UNKNOWN 
    at exports._errnoException (util.js:1026:11) 
    at ChildProcess.spawn (internal/child_process.js:313:11) 
    at exports.spawn (child_process.js:380:9) 
    at ExecDom4Server (D:\Google Drive\Clockwork Hounds stuff\MrClockworkBot\v10 
\MrClockworkBot.js:568:42) 
    at ontimeout (timers.js:365:14) 
    at tryOnTimeout (timers.js:237:5) 
    at Timer.listOnTimeout (timers.js:207:5) 

게임 자체는 그래픽 설정에 대한 몇 가지 특정 인수를 가지고 있지만 아무도 그 중 하나 최소화하지 시작합니다. 다음은 특정 코드입니다.

function execDom4Server(name, args) 
{ 
    var spawn = require('child_process').spawn; 
    childrenProcesses[name.toLowerCase()] = spawn(dom4root + "dom4.exe.lnk", args); 
    updateDom4Games(); 
} 

나는이 모든 것을 보았습니다.하지만 상당히 구체적이라고 생각합니다. 나는 node.js가 .lnk 파일을 처리 할 수 ​​없다는 것을 모른다. 당신이 줄 수있는 모든 포인터는 크게 감사하겠습니다!

답변

0

당신이 spawnshell 옵션을 (사용하는 경우이)

spawn('application.lnk', args, { shell: true }) 
+0

감사를 작동합니다, 나는 실제로 그 시도했고 무엇을 즉시 인스턴스를 폐쇄했다 않았다. 왜냐하면 셸을 true로 설정하면 셸 내에서 경로가 실행되고 공백 때문에 문자열에 여분의 따옴표가 필요하기 때문입니다. 이제 다른 문제는 .lnk을 올바르게 실행 중이지만 시작 옵션이 해당 속성에 설정되어 있어도 최소화 된 상태로 시작되지 않습니다. 거기에 어떤 아이디어? – Drithyl

+0

Windows 10 Build 14986에서 해당 동작을 재현 할 수 없습니다. – djones