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

C# Discussion :

Envoyer des commandes dos et récupérer la réponse


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 12
    Par défaut Envoyer des commandes dos et récupérer la réponse
    Bonjour à tous

    Je suis actuellement en train de faire une application qui doit ouvrir une fenetre dos et envoyer une commande à un logiciel puis récupérer les données renvoyées.

    Voici le code que j'utilise:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    proc.StartInfo.FileName = "E:\\Semestre6\\ScoopLive\\Encoder\\FFMPEG\\ffmpeg.exe";
            proc.StartInfo.Arguments = "-i testAVI.avi";
            proc.StartInfo.RedirectStandardOutput = true;
            proc.StartInfo.UseShellExecute = false;
     
            proc = System.Diagnostics.Process.Start(proc.StartInfo);
     
            string str = proc.StandardOutput.ReadToEnd();
     
            return str;
    Mon probleme est le suivant:
    1)Lorsque je tape dans une fenêtre dos les commandes qui précèdes la réponse du logiciel s'affiche dans la fenêtre msdos. Et lorsque je le lance à partir de mon code le retour est null, j'ai vérifié avec une autre ligne de commande - L (donne la version du logiciel) et là ma string contient bien les infos sur le logiciel.
    Une dernière précision lorsque j'utilise une autre ligne de commande qui crée un nouveau fichier à partir d'un présent dans le même dossier que mon logiciel (ffmpeg) en la lançant sous msdos, ça la crée et quand je la lance avec mon logiciel ça ne la crée pas et ça ne me retourne rien.

    Alors je me demande est ce que en passant par le code il ne peut pas trouver le fichier ou autre, je ne sais plus trop ou chercher.

    2)Sinon j'aimerais savoir si il y a une façon plus simple de faire executer des commandes à un logiciel et de récupérer la réponse de celui-ci sous windows.

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2003
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Suisse

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2003
    Messages : 324
    Par défaut
    1) Utilise proc.Start() au lieu de proc = System.Diagnostics.Process.Start(proc.StartInfo);

    2) si tu travailles avec l autre logiciel, tu peux avoir besoin d avoir une gestion asynschrone de ton interaction
    -> synchro entre thread / event management.
    Une autre facon plus simple pour une gestion asynchrone est l objet
    System.ComponentModel.BackgroundWorker qui a deja des event predefinis DoWork & RunWorkerCompleted -> assez pratique.

  3. #3
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 12
    Par défaut
    hum je vais creuser de ce coté ça pourrait aider.

Discussions similaires

  1. Intercepter des commandes DOS
    Par gta126 dans le forum Windows
    Réponses: 5
    Dernier message: 22/09/2007, 22h59
  2. Envoyer des commandes FTP
    Par Pascmar dans le forum Réseau/Web
    Réponses: 8
    Dernier message: 14/08/2007, 11h09
  3. ecrire des commandes dos
    Par warning dans le forum C
    Réponses: 1
    Dernier message: 16/05/2007, 13h55
  4. Envoyer des commands a un serveur ftp
    Par sitirna dans le forum C++Builder
    Réponses: 3
    Dernier message: 02/09/2006, 12h16
  5. Lancer des commandes dos à partir d'un fichier texte
    Par tpdm dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 09/08/2005, 16h56

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