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

Windows Forms Discussion :

[C# 2.0] Redirection console => GUI


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de Neitsa
    Homme Profil pro
    Chercheur sécurité informatique
    Inscrit en
    Octobre 2003
    Messages
    1 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur sécurité informatique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 041
    Par défaut [C# 2.0] Redirection console => GUI
    Bonjour à tous,

    J'utilise une bibliothèque qui dans ses méthodes, fait des sorties vers la console.
    Or j'utilise cette bibliothèque dans un programme avec une interface graphique. J'aurais voulu savoir s'il était possible de rediriger cette sortie console (console qui n'existe pas) vers mon programme GUI, ou tout du moins avoir la possibilité de capter cette sortie.

    En soi, la sortie console n'est pas des plus intéressant, elle sert juste à savoir ce qui se passe dans les méthodes, mais cela me permettrait d'avoir des sortes de "logs" de ce qui se passe en interne aux méthodes.

    P.S : Les méthodes de la bibliothèque en question utilisent de simples Console.WriteLine();

    Merci à vous

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 19
    Par défaut
    Pourquoi ne pas faire une belle form avec une textbox ? Tu l'affiche lors du début du traitement, et tu la cache lorsque l'opération est terminée. Non ?

  3. #3
    Membre expérimenté

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2006
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 281
    Par défaut
    Si tu as accès au source de la bibliothèque alors tu la modifier pour changer le prototype des fonctions.
    Par exemple si t'as une fonction du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public void unefonction ()
    {
      Console.WriteLine("la fonction qui tue");
    }
    tu peux la transformer en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public string unefonction ()
    {
      return "la fonction qui tue";
    }
    Si c'est une fonction qui retourne déjà autre chose, le paramètre "out" est utile :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public int unefonction (out string msg)
    {
      msg = "un message";
      return 0;
    }

  4. #4
    Membre émérite
    Avatar de shwin
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    568
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2003
    Messages : 568
    Par défaut
    Si je me rappel bien, tu peux rajouter du code a une dll via la réflection, ton code va etre rajouter seulement pendant l'exécution de ton prog. Faudrais voir de ce coté, je ne l'ai jamais fait, donc je ne sais pas si c'est facile/difficile ou encore si c'est sécuritaire. À toi de voir. De cette manière tupourrais modifier la dll "on the fly" et lui dire de faire des return au lieu des console.write

  5. #5
    Rédacteur
    Avatar de Neitsa
    Homme Profil pro
    Chercheur sécurité informatique
    Inscrit en
    Octobre 2003
    Messages
    1 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur sécurité informatique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 041
    Par défaut
    Bonjour,

    Merci à tous pour vos réponses

    J'aurais pu préciser que j'avais accès au sources de la bibliothèque, mais là où le bas blesse c'est qu'il y a plus de 300 méthodes et chacune à au moins une sortie console...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public FooBar (int foo, string bar)
    {
    //traitement 1
    Console.Writeline("traitement réalisé en I : {0} , {1}", bla1, bla2);
    //traitement 2
    Console.Writeline("traitement réalisé en II : {0} , {1}", bla3, bla4);
    // ...
    }
    Problème supplémentaire, la bibliothèque change assez souvent, et je me vois mal réaliser de gros changements à chaque fois que je la récupère sur le CVS...

    Je pensais donc pouvoir récupèrer cette sortie console par un moyen ou un autre même si mon programme est un programme GUI, il faut croire que non...

    J'avais aussi pensé à faire un programme console et mon GUI n'aurait été qu'un "Front-end" mais c'est un peu lourd jute pour récupèrer les sorties de la console, qui ne sont que outputs de ce qui se passe en interne aux méthodes.

    Au final je suis un peu bloqué (apparament), même si récupèrer ces sorties n'est pas critique en soi, mais j'ai attentivement pris note de vos solutions et je vous remercie beaucoup pour avoir pris le temps d'y réfléchir et de m'avoir répondu

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Novembre 2002
    Messages : 89
    Par défaut
    La méthode Console.SetOut(TextWriter) te permettra de faire ce que tu veux:
    http://msdn2.microsoft.com/en-us/lib...le.setout.aspx

  7. #7
    Rédacteur
    Avatar de Neitsa
    Homme Profil pro
    Chercheur sécurité informatique
    Inscrit en
    Octobre 2003
    Messages
    1 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur sécurité informatique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 041
    Par défaut
    Bonjour,

    effectivement, cala me paraît très intéressant bootix Ca me permettra surement de faire de moins gros changement au source. Ca me semble jouable !

    Merci bootix, et encore merci à tous pour vos réponses !

    Je passe le problème en résolu

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

Discussions similaires

  1. Sortie console vers GUI
    Par Micke7 dans le forum Langage
    Réponses: 14
    Dernier message: 19/11/2008, 15h11
  2. ecrire dans fenetre console depuis GUI?
    Par gregcat dans le forum Delphi
    Réponses: 1
    Dernier message: 17/09/2006, 18h07
  3. Exe4j et redirection console...
    Par Oreste dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 11/05/2006, 14h56
  4. sudoku console + gui + thread
    Par marc_dd dans le forum Interfaces Graphiques en Java
    Réponses: 2
    Dernier message: 28/04/2006, 09h25
  5. [TP7] Renvoyer des infos dans la console pour redirection
    Par Natopsi dans le forum Turbo Pascal
    Réponses: 1
    Dernier message: 05/11/2005, 18h21

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