我有以下代码,启动Flash
var flashExePath = "\"c:\\Program Files (x86)\\Adobe\\Adobe Flash CS6\\Flash.exe\"";
var sys = require('sys')
var exec = require('child_process').exec;
var flashProcess = exec(flashExePath);
... ... ...
function KillFlash()
{
console.log("Terminating Flash...")
if(flashProcess && flashProcess.exit)
{
flashProcess.exit(1);
console.log("Flash process killed")
}
}
... ... ...
process.on('SIGINT', function() {
KillFlash();
console.log('Exiting...');
process.exit(1);
});
KillFlash函数应该终止Flash进程。当我点击control-c来停止Node时,' SIGINT'事件处理程序触发并且应该关闭Flash。相反,它说" Flash进程被杀死了#34;但Flash仍然是开放的。
我试过了:
flashProcess.kill()
flashProcess.kill('SIGINT')
flashProcess.kill('SIGTERM')
flashProcess.exit()
flashProcess.exit(1)
这些似乎都不起作用; NodeJS关闭但Flash仍然保持打开状态。
如何终止我的Flash流程?
答案 0 :(得分:0)
我没有真正解决问题,但我想出了一个解决方法。
我在C#中编写了一个应用程序,其唯一目的是启动和监视Flash可执行文件。启动Flash后,它从我的Node脚本中侦听STDIN上的信号。要终止Flash和我的自定义启动器,我会将STDIN中的'quit'写入我的自定义启动器exe。工作就像一个魅力。