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 :

Ecrire dans la console dans un programme WinForm ?


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 310
    Par défaut Ecrire dans la console dans un programme WinForm ?
    Bonjour,

    J'ai créé un programme WinForm, et j'aimerai maintenant pouvoir gérer des arguments dans le cas où on l'utilise en ligne de commande.
    Voici le bout de code:

    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
    static void Main(string[] args)
    {
     Application.EnableVisualStyles();
     Application.SetCompatibleTextRenderingDefault(false);
     
     if (args.Length == 0) // GUI
      Application.Run(new MainForm());
     
     else // CLI
      if (VerifyArgs(args))
       {
           Console.WriteLine("test args= " + args[0]);
           new MainForm(args[0]);
       }
    }
    Malheureusement je ne vois rien apparaitre lorsque je lance un shell windows avec le nom de l'exe+arguments.
    En revanche, quand j'utilise la redirection ">" vers un fichier, je retrouve bien le texte le "test args=.."

    Pourquoi ?

    Dans les options de mon projet je suis en "windows application" c'est surement là le problème mais si change pour "application console" j'ai une console qui s'ouvre en plus de mon GUI :-/

    Merci pour votre aide.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Si je comprends bien, tu voudrais utiliser la console si l'appli est lancée à partir de la console, mais pas dans le cas où l'appli est lancée directement ? Je ne suis pas sûr que ce soit possible. Une appli Windows lancée à partir d'une console est immédiatement détachée de la console, donc tu ne peux plus écrire dans cette console. Par contre, si c'est une appli Console avec une fenêtre WinForms, tu peux te détacher explicitement de la console avec FreeConsole

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 310
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Si je comprends bien, tu voudrais utiliser la console si l'appli est lancée à partir de la console, mais pas dans le cas où l'appli est lancée directement ?
    Oui c'est cela. L'appli peut etre lancé après une double-click : dans ce cas je me fiche de la console ; sinon, en ligne de commande (détectée car il y a des arguments) alors permettre au Console.WriteLine() d'écrire dans la console.
    Ce n'est pas possible ?
    Quand on fait un Console.WriteLine("test") dans une application winform, où va le texte ? D'après la doc il est censé aller sur la sortie standard, donc le shell d'où il a été lancé

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par jeremm Voir le message
    Quand on fait un Console.WriteLine("test") dans une application winform, où va le texte ?
    Si l'exe est de type "application windows", il ne va nulle part, sauf si tu as explicitement attaché une console avec AllocConsole, et dans ce cas il va dans cette console

    Si l'exe est de type "application console", il va dans la console, sauf si tu as détaché la console avec FreeConsole

  5. #5
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2007
    Messages
    677
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Décembre 2007
    Messages : 677
    Par défaut
    Citation Envoyé par jeremm Voir le message
    Quand on fait un Console.WriteLine("test") dans une application winform, où va le texte ?
    Si tes Console.WriteLine() sont à des fins de debug seulement, tu peux les voir en affichant la sortie (Ctrl + W, O). Auquel cas je lui préfère la classe Debug (dans System.Diagnostics).

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par I_Pnose Voir le message
    Si tes Console.WriteLine() sont à des fins de debug seulement, tu peux les voir en affichant la sortie (Ctrl + W, O)
    Effectivement j'oubliais la fenêtre de sortie

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 310
    Par défaut
    Ok merci pour vos réponses.

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

Discussions similaires

  1. Réponses: 14
    Dernier message: 05/05/2014, 00h11
  2. Réponses: 2
    Dernier message: 31/08/2010, 11h58
  3. lancement d'un progamme console dans une console
    Par joreveur dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 09/02/2010, 14h07
  4. Réponses: 5
    Dernier message: 18/12/2009, 09h40
  5. Une image dans un Jpanel dans un Jpanel dans un Jframe
    Par ThomasH dans le forum Agents de placement/Fenêtres
    Réponses: 9
    Dernier message: 09/12/2009, 20h23

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