J'essaie d'utiliser l'électron Atom pour écrire une application de bureau pour Mac et Windows.
Ce dont j'ai besoin ici, c'est:
Un bouton.
Et lorsque l'utilisateur clique sur le bouton, il exécute le shell suivant (ou python):
ping x.x.x.x
Et le résultat sera affiché dans un TextArea.
J'ai essayé d'utiliser [shelljs] et [yargs] mais il semble que cela ne fonctionne pas avec Atom electron.
Tout ce que je veux, c'est utiliser JAVASCRIPT pour écrire Desktop App (avec GUI bien sûr) qui appelle un script (Shell && python) pour faire un travail d'automatisation.
Toute suggestion sera appréciée, merci :)
Cela peut être fait directement avec Node, vous pouvez utiliser le child_process
module. Veuillez noter que c'est asynchrone.
const exec = require('child_process').exec;
function execute(command, callback) {
exec(command, (error, stdout, stderr) => {
callback(stdout);
});
};
// call the function
execute('ping -c 4 0.0.0.0', (output) => {
console.log(output);
});
Je vous encourage également à consulter npm , il y a des tonnes de modules qui pourraient vous aider à faire ce que vous voulez, sans appeler un script python.
Essayez node-powershell npm. Vous pouvez exécuter directement les commandes de script Shell et afficher le résultat.
var Shell = require('node-powershell')
var ps = new Shell()
ps.addCommand('ping -c 4 0.0.0.0')
ps.invoke()
.then(function (output) {
console.log(output)
})
.catch(function (err) {
console.log(err)
ps.dispose()
})
vous pouvez utiliser child_process pour archiver ce que vous essayez de faire en utilisant le code suivant
var exec = require('child_process').exec
function Callback(err, stdout, stderr) {
if (err) {
console.log(`exec error: ${err}`);
return;
}else{
console.log(`${stdout}`);
}
}
res = exec('ping xxx.xxx.xxx', Callback);