IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Autres langages pour le Web Discussion :

[XPCOM] XPCOM ert éxécution de scripts sh


Sujet :

Autres langages pour le Web

  1. #1
    Membre habitué Avatar de gKsam
    Profil pro
    Inscrit en
    Août 2007
    Messages
    166
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 166
    Points : 153
    Points
    153
    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.
    Le plus compliqué, c'est de faire quelque chose de simple.

  2. #2
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    essaies ceci...

    Code Javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  3. #3
    Membre habitué Avatar de gKsam
    Profil pro
    Inscrit en
    Août 2007
    Messages
    166
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 166
    Points : 153
    Points
    153
    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.
    Le plus compliqué, c'est de faire quelque chose de simple.

  4. #4
    Membre habitué Avatar de gKsam
    Profil pro
    Inscrit en
    Août 2007
    Messages
    166
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 166
    Points : 153
    Points
    153
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    <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
    Le plus compliqué, c'est de faire quelque chose de simple.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. libssh ; probléme d'éxécution de scripts
    Par mumuri dans le forum C++
    Réponses: 1
    Dernier message: 26/04/2010, 18h59
  2. Réponses: 6
    Dernier message: 04/07/2008, 09h16
  3. Réponses: 5
    Dernier message: 24/04/2008, 16h05
  4. [Configuration] limite de temps pour l'éxécution de scripts via php-cli
    Par icer dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 28/05/2007, 11h33
  5. [Système] temps d'éxécution de script
    Par clara2005 dans le forum Langage
    Réponses: 4
    Dernier message: 28/11/2005, 12h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo