2010-08-07 93 views
1

我開始開發一個必須與外部應用程序交互的擴展。我可以按照here的描述運行外部應用程序,但我沒有看到獲得任何反饋的方法。我得到的唯一信息是退出狀態,而我需要讀取應用程序輸出,因爲它會出現在終端(stdout)上。有沒有辦法做到這一點?有沒有辦法從XUL的流程中獲得反饋?

回答

1

運行nsiProcess後,在檢查isRunning屬性時循環。當它停止運行時,請檢查exitValue屬性。據我瞭解,這可能會在不同平臺上表現不同,但我在Windows上成功使用它。

+0

沒有必要循環,當過程完成時我可以通知觀察員。但在這個我沒有找到輸出,是嗎?如果過程正確完成,則退出值應爲0,如果執行中存在問題,則數值代碼與0不同。 – Andrea 2010-08-08 12:07:33

+0

我不知道如何獲得觀察者通知,但我通過setInterval檢查isRunning,然後讀取exitValue來完成。你是說你正在檢查exitValue並且它沒有被設置? – pc1oad1etter 2010-08-09 14:03:01

+0

對不起,我現在只閱讀此回覆。我只是說exitValue不是輸出。不管怎樣,謝謝你。要通知觀察者,請在此處檢查runAsync方法:https://developer.mozilla.org/en/nsIProcess – Andrea 2010-08-27 00:29:50

相關問題