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

JavaScript Discussion :

Cherche alternative pour palier l'impossibilité de lancer un executable avec javascript ?


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 142
    Points : 109
    Points
    109
    Par défaut Cherche alternative pour palier l'impossibilité de lancer un executable avec javascript ?
    Bonjour, oui vous avez bien lu, je voudrais faire un truc qui ne peut pas se faire en javascript.
    Et du coup je viens vous demander si vous pouvez me donner une alternative pas trop compliquée.

    Voila donc mon problème :

    J'ai créé (en C++ des fois que ce soit utile) un petit executable qui a partir d'un fichier texte ou de l'entrée standard parse du pseudo code et crée un joli fichier html qui contient un fatras de javascript.
    Une fois ce fichier html lancé par le navigateur le fatras sus cité permet d'avoir une sorte de debugger-pour-les-nuls du pseudo code fourni par le premier fichier (celui parsé par mon executable).

    Bon, c'est bien, ca me permet d'avoir une joli présentation de mes parties de cours consacrées a l'algo (je suis prof de maths en lycée pour fixer les idées).
    Cependant, je voudrais permettre a mes éléves d'utiliser mon executable.
    La manip n'est pas si compliquée :
    - ouvrir notepad pour creer le pseudo code, l 'enregistrer.
    - drag and drop le fichier sur l icone de mon executable.
    - hop apparait une nouvelle icone qui une fois double cliquée lance le navigateur qui affiche ce qu il doit afficher.

    Mais voila... ce sont des éléves et j'imagine a peine l'etat du bureau une fois qu ils auront fait ca une trentaine de fois avec des fichiers html a foison...
    Breeeeeeef ! Si je pouvais ne pas me transformer en femme de menage de bureau windows, je prefererais....

    Ca serait siiiiiii siiiimple si mon html pouvait contenir un textedit un joli bouton qui prendrait en charge l'équivalent de la manip donnée au-dessus a leur place et nettoierai eventuellement le bazar a leur (MA !) place.

    Voila voila, tout se passe en local en fait, pas de reseau du tout, mais le lycée en a un... le probleme c'est que je n'y connais franchement rien et qu'en ce moment je n'ai pas tout à fait le temps de m'y consacrer.

    Du coup je viens vous demander si vous avez une idée pas trop compliquée a mettre en oeuvre qui me permettrait d'éduquer nos tetes blondes...

  2. #2
    Membre chevronné

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Points : 1 768
    Points
    1 768
    Billets dans le blog
    1
    Par défaut Appli orienté web + CRON table (linux) ou windows task (batch Vbscript ... )
    Bonsoir je pense pas que c++ soit nécessaire a ce genre d'application, seule une application web peu tout a fait convenir, il va falloir vous documentez sur un langage dynamique orienté web comme .net avec c++ tout a fait faisable de créer des fichiers html à la volé avec les bonnes libs et avec plusieurs paramètres selon vos besoins en terme de données à parser suites au différentes manipulation des élèves, d'autres langages pourront aussi faire l'affaire comme PHP, ASP, JSP, NODEJS...

    Pour vos soucis de fichiers à nettoyer je vous conseil de créer une tache avec batch (checker les dossiers et supprimer les fichiers) si windows ou un CRON table sous linux.

    Bonne chance

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 142
    Points : 109
    Points
    109
    Par défaut
    Bonsoir headmax (max headroom ?)
    En fait que le c++ soit necessaire ou pas n est pas vraiment la question puisque j ai deja fait l executable parsant le pseudocode et generant la page html... et autant que possible j aimerais ne pas avoir a le refaire (Apprendre a utiliser flex et et bison m a un peu refroidi et j dois dire que si j pouvais eviter de recommencer pour reecrire tout ca dans un autre langage euh...plus tard quoi)
    sinon oui j ai pensé a nettoyer avec une tache type cron... je vais tester et voir si ca suffit.
    Je crois bien que j esperais qu il soit possible de dire au navigateur que javascript avait le droit de lancer un exe bien precis et pas d autres par exemple
    Bon merci de votre reponse en tout cas je regarderai plus avant pendant mes prochaines heures de libres.

  4. #4
    Membre chevronné

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Points : 1 768
    Points
    1 768
    Billets dans le blog
    1
    Par défaut Launch - démarrer un executable avec JS
    Bonjour, pour répondre a votre question celle qui fait l'objet du topic oui il est tout a fait possible de démarrer un executable avec javascript et un moyen très simple de le faire et d'installer le côté serveur qu'offre NODEJS.

    Installer nodejs sur la machine serveur.
    il y a un tas de possibilité mais nativement a nodejs sans rien installer normalement il est possible d'utiliser exec, mais il y a aussi
    app.system("cmd.exe /c\"C:/PATH/VERS/LE/DOSSIER/DE/APPLICATION.exe\" ); ici grâce à system ... et il en a d'autre que vous devez surement installer.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    //installation 
    require('child_process').exec(‘VOTRE_APPLICATION.exe’,{ cwd  : 'C:/PATH/VERS/LE/DOSSIER/DE/EXE' }, function() {
        //Function de callback c'est ici qui vous reprenez la main et faire vos différentes manipulation en js
    })

  5. #5
    Membre expert
    Avatar de Golgotha
    Homme Profil pro
    Full-stack Web Developer
    Inscrit en
    Août 2007
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Full-stack Web Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2007
    Messages : 1 386
    Points : 3 531
    Points
    3 531
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Je ne comprends pas la problématique. Pour moi c'est très simple, c'est à votre exécutable de faire le ménage avant de générer un nouveau fichier HTML.
    Consultant et développeur full-stack spécialiste du Web
    faq jQuery - règles du forum - faqs web

  6. #6
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Pourquoi ne pas utiliser toujours le même fichier pour la page générée ? ou alors mettre les pages générées dans un dossier ? je ne comprends pas bien le problème.
    One Web to rule them all

  7. #7
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    pour rester dans les mêmes techno
    jscript et HTA

    à la place de produire un HTML il te suffit de produire un HTA (même si c'est un vieux truc ça marche toujours)
    et à la place de javascript utilise jscript qui lui sais lancer des exécutables

    ce qui est décrit dans ce tuto pour VB est valable pour jscript
    http://bbil.developpez.com/tutoriel/vbs/interface-hta/
    http://fr.wikipedia.org/wiki/JScript

    mais sous windows HTA est vieux et n'est plus très bien suivit par bi££.
    aujourd'hui pieux vaut en passer par powershell
    http://www.drdobbs.com/windows/build...hell/240049898
    http://fr.wikipedia.org/wiki/Windows_PowerShell
    http://www.powershell-scripting.com/
    http://powershell-scripting.com/inde...d=59&Itemid=75
    http://blogs.technet.com/b/heyscript...ll-script.aspx
    http://blogs.technet.com/b/heyscript...o-scripts.aspx
    ect.

    l'investissement est plus important mais les possibilités sont plus grande et l'outils plus adapté à ton besoin.
    A+JYT

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 142
    Points : 109
    Points
    109
    Par défaut
    Merci pour vos réponses. Je vais voir ce que je vais pouvoir en faire. Une des contraintes étant que les machines, sans êtres très vieilles, ne sont pas du tout à jour et tournes sous XP (finalement si elles sont vieilles...). Et je cherche une solution qui demande un minimum d'installations de choses ésotériques et certainement pas de changement d OS... bref je verrai et posterai un nouveau fil lorsque j'en saurai plus.
    Je marque celui-ci comme résolu.

  9. #9
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    avec des machine sous XP HTA JScript

    tu n'as rien à installer
    renomme ton fichier toto.html => toto.hta
    ajoute dans la partie header
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
      <hta:application id="oMyApp" 
        applicationname="myApp" 
        border="yes"
        caption="yes"
        icon="/graphics/creature.ico"
        showintaskbar="yes"
        singleinstance="yes"
        sysmenu="no"
        windowstate="maximize">

    double clique dessus et windows te demande avec quoi l'ouvrir
    tu choisis CScript.exe qui se trouve dans system32

    et c'est fait.

    JScript est l'implémentation javascript de microsoft
    dans ce contexte tu peux accéder aux FileSystemObject, WScript.Shell, etc.

    tu peux faire des chose comme
    Code html : 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
    20
    21
    22
    23
    24
    25
    26
    <html> 
     <head> 
      <hta:application id="oMyApp" 
        applicationname="monster" 
        border="none"
        caption="no"
        icon="/graphics/creature.ico"
        showintaskbar="no"
        singleinstance="yes"
        sysmenu="no"
        windowstate="maximize">
         <script language="JavaScript" type="text/javascript">  
             MyObject = new ActiveXObject( "WScript.Shell" )  
             function RunNotePad()   
             {  
                MyObject.Run("notepad.exe") ;  
            }  
          
        </script> 
     </head> 
     <body> 
        <h1>Run a Program</h1> 
        This script launch the file >> c:\windows\notepad.exe<p> 
        <button onclick="RunNotePad()">Run Windows NotePad</button> 
     </body> 
    </html>

    HTML Application Example.zip

    https://msdn.microsoft.com/en-us/lib...96(VS.85).aspx

    A+JYT

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 142
    Points : 109
    Points
    109
    Par défaut
    Super et merci beaucoup pour ces renseignements sekaijin !

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

Discussions similaires

  1. Lancer un executable avec des paramètres
    Par Hayabusah dans le forum C++
    Réponses: 3
    Dernier message: 30/04/2015, 17h46
  2. Impossible de lancer un executable avec runtime.exec
    Par emardjean dans le forum Général Java
    Réponses: 2
    Dernier message: 13/09/2014, 21h53
  3. lancer un executable avec fichier en entrée
    Par Halloula dans le forum Visual C++
    Réponses: 3
    Dernier message: 27/11/2009, 13h04
  4. Réponses: 4
    Dernier message: 21/11/2007, 18h21
  5. Réponses: 2
    Dernier message: 14/01/2006, 09h12

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