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
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 ;-)
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
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 ;-)
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);
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 ;-)
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!!!!!!!!!
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???
Envoyé par : thefab
Date : 11/01/2009 22:06
var command = '"c:\windows\system32\ping.exe" "-p" "' + ip + '"';
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...
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 ;-)
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.