2010-08-07 10 views
1

외부 응용 프로그램과 상호 작용해야하는 확장 기능을 개발하기 시작했습니다. here에 설명 된대로 외부 응용 프로그램을 실행할 수는 있지만 피드백을 얻을 수있는 방법은 없습니다. 내가 얻을 수있는 유일한 정보는 종료 상태입니다. 터미널 (stdout)에 표시되는 것처럼 응용 프로그램 출력을 읽어야합니다. 이것을 할 수있는 방법이 있습니까?XUL에서 프로세스의 피드백을 얻을 수있는 방법이 있습니까?

답변

1

nsiProcess을 실행 한 후 isRunning 속성을 확인하면서 루프하십시오. 실행이 중지되면 exitValue 속성을 확인하십시오. 내가 알기에 이것은 다른 플랫폼에서 다르게 행동 할 수도 있지만 Windows에서 성공적으로 사용했습니다.

+0

반복 할 필요가 없습니다. 프로세스가 끝나면 관찰자에게 알릴 수 있습니다. 그러나 이것으로 저는 산출물을 찾지 못합니다, 그렇습니까? 프로세스가 올바르게 완료되면 종료 값은 0이고 실행에 문제가있는 경우 0이 아닌 숫자 코드 여야합니다. – Andrea

+0

관찰자 알림을받는 방법에 대해서는 잘 모르겠지만 setInterval을 사용하여 isRunning을 확인한 다음 exitValue를 읽으면됩니다. exitValue를 확인 중이며 설정된 상태가 아니라는 것을 말하고 있습니까? – pc1oad1etter

+0

죄송합니다, 전 단지이 답장을 읽었습니다. 나는 exitValue가 출력이 아니라는 것을 말하고있다. 어쨌든 고맙습니다. 옵저버에게 알리려면 여기 runAsync 메소드를 확인하십시오 : https://developer.mozilla.org/en/nsIProcess – Andrea

관련 문제