0

我有以下代码,它启动 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 进程已终止”,但 Flash 仍处于打开状态。

我试过了:

flashProcess.kill()
flashProcess.kill('SIGINT')
flashProcess.kill('SIGTERM')
flashProcess.exit()
flashProcess.exit(1)

这些似乎都不起作用;NodeJS 关闭,但 Flash 仍保持打开状态。

如何终止我的 Flash 进程?

4

1 回答 1

0

我并没有真正解决问题,但我想出了一个解决方法。

我用 C# 编写了一个应用程序,其唯一目的是启动和监视 Flash 可执行文件。启动 Flash 后,它会从我的 Node 脚本中侦听 STDIN 上的信号。要终止 Flash 和我的自定义启动器,我会将“退出”从 Node 写入 STDIN 到我的自定义启动器 exe。像魅力一样工作。

于 2013-06-20T22:36:00.967 回答