J'utilise ce code noeud js pour exécuter le fichier App.exe qui contient une boucle infinie. Je passe l'entrée et obtient la sortie d'App.exe.Fermer le fichier .exe à l'aide du noeud js
var bat = null;
app.post("/api/run", function(req, res) {
if(req.body.success) {
if(bat) bat.kill();
}
if(!bat) {
bat = spawn('cmd.exe', ['/c App.exe']);
bat.stderr.on('data', function (data) {
res.end(JSON.stringify({error: true, message: data.toString()}));
});
bat.on('exit', function (code) {
bat = null;
console.log('Child exited with code ' + code);
res.end(JSON.stringify({error: false, message: "Application Closed!"}));
});
}
bat.stdin.write(req.body.input+'\n');
bat.stdout.once('data', function (data) {
console.log(data.toString());
res.end(JSON.stringify({error: false, message: data.toString()}));
});
});
Problème: en cas de réussite du processus enfant, le processus enfant est arrêté mais App.exe continue à fonctionner. I là un moyen d'arrêter App.exe
Au lieu de 'cmd.exe', ne pouvez-vous pas lancer directement App.exe? – robertklep