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

VB.NET Discussion :

Executer un script (externe ! ) dans un programme VBNet généré .EXE


Sujet :

VB.NET

  1. #1
    Membre confirmé
    Homme Profil pro
    Tooling - Testing
    Inscrit en
    Décembre 2008
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : Tooling - Testing

    Informations forums :
    Inscription : Décembre 2008
    Messages : 141
    Par défaut Executer un script (externe ! ) dans un programme VBNet généré .EXE
    Bonjour,

    est il possible d'exécuter un script ( fait d'opérations par exemple ), dans un executable généré EXE d'un programme VBNet par exemple MYEXEC.

    Quelque chose comme ceci :

    Un fichier externe FILEEXT qui contient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    IF ZONA > 100 THEN ZONB = ZONC + ZOND
    IF ZONA <= 100 THEN ZONB = ZONC - ZOND
    Dans le programme VBNet compilé MYEXEC,

    ( pseudo code)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ZONA = 150
    ZONB = 0
    ZONC = 200
    ZOND = 50
     
    Ouvrir FILEEXT
    LIRE et executer chanque ligne du fichier.
    Fermer FILEEXT
    Donner resultat ZONB

    ici ZONB = 250.


    Une autre execution du programme pourrait recevoir le fichier FILEEXT contenant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    IF ZONA > 100 THEN ZONB = ZOND
    IF ZONA <= 100 THEN ZONB = ZONC

    Autre idée qui correspondrait : y a t il moyen de générer un exécutable à la volée ( sur un site où ne se trouverait pas Visual Studio ) et l'intégrer dans l'executable principal. Ici générer FILEEXT et l'exécuter dans MYEXEC

    Merci de vos suggestions et pistes.

    Cheers

    Pierre

  2. #2
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut Shell et Process.Start
    Il y au moins 2 moyens de commander ce que tu veux à partir de ton exécutable.

    Le fichier Shell.pdf ci-joint explique l'usage de Shell.
    Le fichier Start.pdf ci-joint reprend la commande Shell mais propose aussi Process.Start.

    Cela devrait t'aider ...

    Pièce jointe 410114
    Pièce jointe 410118

  3. #3
    Membre confirmé
    Homme Profil pro
    Tooling - Testing
    Inscrit en
    Décembre 2008
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : Tooling - Testing

    Informations forums :
    Inscription : Décembre 2008
    Messages : 141
    Par défaut
    Merci pour l'attention portée à mon problème, mais je n'ai sans doute pas été suffisamment clair.

    J'ai un programme MYEXEC qui s'exécute et qui propose une fenêtre d'entrée dans une textbox par exemple. L'utilisateur entre alors le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    IF ZONA > 100 THEN ZONB = ZONC + ZOND
    IF ZONA <= 100 THEN ZONB = ZONC - ZOND

    et ce code "entré en live" ( une sorte de code source donc ) doit s'exécuter dans MYEXEC ( les champs ZONA ZONB ZONC et ZOND sont définis dans MYEXEC ) après entrée validée par button par exemple.

    Je sais comment exécuter un programme à partir d'un programme via Shell ou Start.

    Ou ai je mal lu votre (vos) solution(s).

    En fait, c'est exécuter un script non compilé ( comme le langage SAS par exemple ) dans un programme compilé. Une programmation dynamique.

    Merci encore.

    Pierre


    PS : vous êtes enseignant en école d'informatique??

  4. #4
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Les solutions que je propose permettent de lancer un script qui peut-être exécuté en ligne de commande.
    Et bien sûr, avant de lancer Shell ou Start, ton application peut créer le fichier script que tu souhaites (avec extension *.BAT, par exemple).
    Dans ton exemple, Lire et exécuter chaque ligne du fichier fonctionnera avec un script Dos.
    Mais si ton script ne peut s'exécuter en ligne de commande, alors je n'ai pas de solution sous la main. Désolé ...
    Pour ce qui est de ta question finale ..., oui je l'étais ...

  5. #5
    Membre confirmé
    Homme Profil pro
    Tooling - Testing
    Inscrit en
    Décembre 2008
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : Tooling - Testing

    Informations forums :
    Inscription : Décembre 2008
    Messages : 141
    Par défaut
    Merci pour ces informations.

    Je crois que je vais faire de l'analyse de texte et exécuter des sortes de tables de décision dans le programme VBNet.
    ( Je l'avais déjà fait en PL/I et en Cobol sur Mainframe ).

    Merci….. et continuez d'être toujours occupé à cette merveilleuse activité d'informaticien.


    Cheers

    Pierre
    ( 48 ans d'informatique et "still busy" )


    PS : je mets le post en résolu, même si….

  6. #6
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 193
    Par défaut
    il est possible de compiler du code .net à la volée (= pendant l'exécution)
    ca se fait via vbcodeprovider, codedom ...
    tu peux donc compiler une dll en mémoire et l'utiliser par reflection

    il faudrait donc avoir un string contenant la déclaration d'une classe, avec la déclaration d'une méthode/fonction qui prend en paramètres les variables utilisables par l'utilisateur (en ByRef si ca doit interférer avec ton programme) et dans laquelle tu mets le code saisi par l'utilisateur
    après compilation tu récupères un pointeur sur la méthode via le type retrouvé dans l'assembly et tu peux l'appeler avec .Invoke(paramètres)

    l'avantage aussi c'est que si l'utilisateur écrit un truc qui ne compile pas tu récupères les messages d'erreur comme dans visual studio (variable inconnue telle ligne…) et tu peux donc les afficher


    ca vaut pas un bon exemple, mais tous les mots clés sont là pour en trouver sur internet
    par contre il faut éventuellement avoir quelques notions sur la reflection
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Là, zone inconnue pour moi mais j'y regarderai peut-être ...
    Je garde ton explication de côté.
    Cordialement,
    Phil

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

Discussions similaires

  1. [Système] Executer un script CGI dans une page php
    Par RadicalBob dans le forum Langage
    Réponses: 1
    Dernier message: 25/04/2007, 17h46
  2. execution de script js dans la page
    Par Boolean69 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 14/02/2007, 11h22
  3. Comment executer un script perl dans un script javascript ?
    Par Hamdi Hedhili dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 01/11/2006, 17h09
  4. Executer 1 script contenu dans une variable PHP
    Par emstar dans le forum Langage
    Réponses: 5
    Dernier message: 19/04/2006, 11h48
  5. Réponses: 5
    Dernier message: 16/03/2006, 00h37

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