Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Autres langages pour le Web
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/02/2008, 11h54   #1
Membre habitué
 
Avatar de gKsam
 
Inscription : août 2007
Messages : 165
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : août 2007
Messages : 165
Points : 131
Points : 131
Envoyer un message via MSN à gKsam
Par défaut [XPCOM] XPCOM ert éxécution de scripts sh

Je dois faire des boutons dans une page HTML et lancer via ces boutons des script sh. Sur des machines linux

La technologie xpcom permet-elle donc bien de faire cela?

Avez-vous des expériences ou exemples à me citer pour que je puisse démarrer.
gKsam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2008, 21h21   #2
Rédacteur/Modérateur
 
Avatar de gorgonite
 
Homme Nicolas Vallée
Ingénieur Système
Inscription : décembre 2005
Messages : 9 774
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vallée
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Ingénieur Système
Secteur : Transports

Informations forums :
Inscription : décembre 2005
Messages : 9 774
Points : 14 303
Points : 14 303
essaies ceci...

Code Javascript :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
function process(execpath,args) {
  //Creation d'un objet nsILocalFile pour l'application
  var file = Components.classes["@mozilla.org/file/local;1"]
             .createInstance(Components.interfaces.nsILocalFile);
  file.initWithPath(execpath);
 
  //Creation du processus
  var process = Components.classes["@mozilla.org/process/util;1"]
                .createInstance(Components.interfaces.nsIProcess);
  process.init(file);
 
  //Execution du processus
  //Si le premier parametre est true, le script sera bloqué jusqu'a la fin du processus
  //Les seconds et troisiemes parametres sont les arguments transmis a l'application
  //(Le troisieme etant le nombre d'arguments). 
  process.run(false, args, args.length);
}
__________________
Evitez les MP pour les questions techniques... il y a des forums
Contributions sur DVP : Mes Tutos | Mon Blog
gorgonite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2008, 10h08   #3
Membre habitué
 
Avatar de gKsam
 
Inscription : août 2007
Messages : 165
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : août 2007
Messages : 165
Points : 131
Points : 131
Envoyer un message via MSN à gKsam
Par défaut un peu débordé

Là je suis sur d'autres choses mais je sais maintenant quelle technologie je vais utiliser.

Dès que j'ai testé ça je raconte mon expérience de la chose.
gKsam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/03/2008, 16h03   #4
Membre habitué
 
Avatar de gKsam
 
Inscription : août 2007
Messages : 165
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : août 2007
Messages : 165
Points : 131
Points : 131
Envoyer un message via MSN à gKsam
Par défaut Enfin pu m'occuper de cette histoire

Donc, revenons à nos moutons.

Après avoir fureté à droite à gauche. j'en suis arrivé à ça.

tout d'abord pour éviter quelques soucis :
Pour activer les privilèges XPCOM (attention! à l'arrache donc seulement pour tester)
Ajouter au fichier ~/.mozilla/firefox/ziguigui.default/pref.js la ligne suivante
user_pref("signed.applets.codebase_principal_support", true);

un petit echo 'user_pref("signed.applets.codebase_principal_support", true);' >> ~/.mozilla/firefox/ziguigui.default/pref.js fera amplement l'affaire.

pour le code javascript :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function executerFichierScript(chemin_fichier, arguments) {

	try {
		netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
  		
  		var fichier = Components.classes['@mozilla.org/file/local;1'].createInstance(Components.interfaces.nsILocalFile)
  		fichier.initWithPath(chemin_fichier)
  
  		if (fichier.exists()) {
  			
  			var processus = Components.classes['@mozilla.org/process/util;1'].createInstance(Components.interfaces.nsIProcess)
   			processus.init(fichier)
    			processus.run(false, arguments, arguments.length)
		}
	} catch(e) {

		alert('Une erreur:' + e);
	}
}
et pour le code XHTML
Code :
<a href="" onclick="executerFicherScript('/chemin/du/script/a/lancer', ['argument 1', 'argument 2', 'argument n'])">lancer script</a>
Et voilà, normalement cela fonctionne

testé sous Linux (debian et ubuntu) avec firefox 2.etdesbriquettes
gKsam est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h11.


 
 
 
 
Partenaires

Hébergement Web