我正在尝试使用Components.interfaces.nsIProcess
从雷鸟扩展运行dvipng
进程。我需要读取该过程的标准输出,但我无法找到一种方法来做到这一点。我在nsIProcess2
上找到了一些线程,但那个线程(看起来)从未完全实现过标准输出。有什么建议吗?
nsIProcess2
是无关的-它是实现的,但后来被折叠到nsIProcess
中。它只是关于异步启动进程。
相关的bug是bug 484246和bug 68702。后者已经解决了,但到目前为止,Firefox/Thunderbird默认没有附带代码(Firefox和Thunderbird本身都不需要这么多代码)。所以你的选项是:
- 自己构建IPCModule并使其成为扩展的一部分-不推荐,因为它会引起很多麻烦。
- 创建一个本机库来调用
dvipng
,通过js-ctypes使用它-应该是最简单的解决方案。 - 将
dvipng
转换为库并直接通过js-ctypes使用它-可能也不会太难,这也会给你更好的性能。