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 を押すと、「SIGINT」イベント ハンドラが起動し、Flash を閉じるはずです。代わりに、「Flash プロセスが強制終了されました」と表示されますが、Flash はまだ開いています。

私はもう試した:

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

これらのどれも機能していないようです。NodeJS は閉じますが、Flash は開いたままです。

Flash プロセスを終了するにはどうすればよいですか?

4

1 に答える 1

0

私は実際には問題を解決しませんでしたが、回避策を思いつきました。

Flash 実行可能ファイルを起動して監視することを唯一の目的とするアプリを C# で作成しました。Flash を起動した後、Node スクリプトから STDIN でシグナルをリッスンしました。Flash とカスタム ランチャーを終了するには、Node からカスタム ランチャー exe の STDIN に 'quit' を書き込みます。魅力のように働きました。

于 2013-06-20T22:36:00.967 に答える