Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# [Résolu] Gestion de process externe

Envoyé par : cokinou

Date : 17/09/2008 17:28

Bonjour à tous,

Via une petite appli xulrunner, je dois lancer un programme externe au démarrage de mon appli, et l'arrêter au moment ou je quitte mon appli.

La première étape est faite sans problème via : (sachant que monExecutableExterne est de type nsILocalFile)

 var process = Components.classes["@mozilla.org/process/util;1"].createInstance(Components.interfaces.nsIProcess);
 process.init(monExecutableExterne);
 process.run(false, param, nbparam);

Ca lance bien mon programme externe.

Par contre, pour l'arrêter, je fais chou blanc :-( J'ai essayé de me servir de la fonction kill de l'interface nsIProcess (voir doc ici) en faisant : (sachant que process est celui créé ci-dessus)

  process.kill();

Mais ca ne marche pas :-( J'ai pas d'erreur ni d'exception mais mon programme externe tourne toujours :-(

J'ai rien trouvé d'autre permettant de quitter une application externe.

Est-ce que quelqu'un aurait une idée pour m'aider ?

Merci d'avance

# Re: Gestion de process externe

Envoyé par : cokinou

Date : 19/09/2008 17:22

Je me réponds tout seul :-)

Apparemment, c'est un bug sous windows... Mais ca marche ailleurs.

J'ai trouvé quelqu'un qui a développé un XPCOM permettant de manipuler les process sous windows : http://jamesboston.ca/cms/node/35

Je m'en suis donc servi pour lancer et arrêter mes processus, et ca marche bien :-)

Donc si vous êtes intéressé, vous pouvez aller jeter un coup d'oeil ;-)

Merci pour ceux qui ont peut-être réfléchit à mon problème ;-)

# Re: Gestion de process externe

Envoyé par : jamesboston

Date : 23/09/2008 05:36

Thanks for using my XPCOM stuff! It's been updated with another method: http://jamesboston.ca/cms/node/66

Merci d'utiliser mon XPCOM! Il a été mis à jour avec une autre méthode: http://jamesboston.ca/cms/node/66

# Re: Gestion de process externe

Envoyé par : cokinou

Date : 23/09/2008 17:42

jamesboston a écrit:

Merci d'utiliser mon XPCOM! Il a été mis à jour
avec une autre méthode:
http://jamesboston.ca/cms/node/66

Merci bien, je vais aller jeter un oeil ;-)

# Re: [Résolu] Gestion de process externe

Envoyé par : INDOU 68

Date : 07/01/2009 17:58

Bonjour,

je suis entrain de dev un plugin pour firefox en xul. Et j'aimerais lancer la commande ping sur une ip en appuyant sur un bouton ou un clike droit sur un menu ouvrant.

 var file = Components.classes["@mozilla.org/file/local;1"]
                     .createInstance(Components.interfaces.nsILocalFile);
 
 //lance un tse
 file.initWithPath("c:\\windows\\system32\\mstsc.exe");
 
 //avec 3 arg different
 var args = ["", "/v:"+ip,  "/admin"];
 
 //initialise
 process.init(file);
 
 //lance le pros
 process.run(false, args, args.length);

Le code ci dessus marche avec l'application connexion a un bureau distant avec windws mais avec le ping.exe ca ne marche pas

 var file = Components.classes["@mozilla.org/file/local;1"]
                     .createInstance(Components.interfaces.nsILocalFile);

 //lance un tse
 file.initWithPath("c:\\windows\\system32\\ping.exe");
 
 //avec 3 arg different
 var args = ["-t 192.168.0.1"];
 
 //initialise
 process.init(file);
 //lance le pros
 process.run(false, args, args.length);

# Re: [Résolu] Gestion de process externe

Envoyé par : cokinou

Date : 08/01/2009 10:09

Je ne sais pas.... essaye déjà de séparer les arguments, comme dans ton exemple qui fonctionne :

  //avec 3 arg different
  var args = ["", "-t", "192.168.0.1"];

Si jamais ca marche pas, tu peux essayer avec le XPCOM dont j'ai mis le lien un peu plus haut, il permet de géré le process de windows de façon différente.... peut-être que ca marchera :-)

Courage ;-)

# Re: [Résolu] Gestion de process externe

Envoyé par : INDOU 68

Date : 11/01/2009 11:03

Merci pour ton tuyau les process de windows se lancent mais lorsque je rajoute des arguments, ca ne fonctionne pas.

var command = '"c:\windows\system32\ping.exe 192.168.0.1"';

@@var pm=Components.classes["@senecac.on.ca/processmanager;@@ 1"].getService(Components.interfaces.IProcessManager); pm.start(command);

Comment faire?? telle est la question de l'année 2009!!!!!!!!!

# Re: [Résolu] Gestion de process externe

Envoyé par : INDOU 68

Date : 11/01/2009 14:48

Non, enfaite c'est bon, ca fonctionne il suffisait de séparer les arguments par des espaces et en rajoutant des guillemets comme ceci:

var command = '"c:\windows\system32\ping.exe" "-p" "192.168.0.1"';

MAis un autre pb se pose, c'est trouver un moyen de mettre ma variable ip qui est égal à 192.168.0.1 à la place de 192.168.0.1.

var ip=192.168.0.1;
var command = '"c:\windows\system32\ping.exe" ip';
ou
var command = '"c:\windows\system32\ping.exe" "ip"';
ou
var command = '"c:\windows\system32\ping.exe" "-p "+ip';

Les codes ci dessus ne fonctionne pas. COMMENT FAIRE???

# Re: [Résolu] Gestion de process externe

Envoyé par : thefab

Date : 11/01/2009 22:06

var command = '"c:\windows\system32\ping.exe" "-p" "' + ip + '"';

# Re: [Résolu] Gestion de process externe

Envoyé par : INDOU 68

Date : 11/01/2009 22:51

Merci thefab, le code ci-dessous fonctionne,il ne faut pas oublier les \
var command = '"c:\windows\system32\ping.exe" "-t" "'+ip+'"';

J'ai encore une autre question, si je veux lancer des process pour mac ou pour linux, je fais comment es ce que c'est possible en utilisant le plugin de james.D'après ce que j'ai compris, ca fonctionne que pour les process de windows...

# Re: [Résolu] Gestion de process externe

Envoyé par : cokinou

Date : 12/01/2009 12:11

INDOU 68 a écrit:

J'ai encore une autre question, si je veux lancer
des process pour mac ou pour linux, je fais
comment es ce que c'est possible en utilisant le
plugin de james.D'après ce que j'ai compris, ca
fonctionne que pour les process de windows...

Il me semble que la méthode mozilla, implémentant le Components.interfaces.nsILocalFile comme tu l'as fait au début, fonctionne bien sous linux et mac.... y a que sous windows qu'elle n'est pas super...

A vérifier ;-)

# Re: [Résolu] Gestion de process externe

Envoyé par : INDOU 68

Date : 14/01/2009 10:06

Merci, franchement grâce à ce forum, j'ai réussie à faire mon premier plugin, merci beaucoup.

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.