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 une fenetre cmd déjà ouverte


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    321
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 321
    Par défaut Ecrire dans une fenetre cmd déjà ouverte
    Bonjour,

    Je vous expose mon probleme : je souhaiterai récupérr une fenetre cmd déjà ouverte afin d'écrire à l'interieur (afin d'afficher des informations de debug). J'arrive déjà à réaliser cela a partir d'une fenetre cmd que je lance moi meme à l'aide de la classe Process, mais bien que j'arrive à récuperer une fentre de commande existante, je n'arrive pas à écrire dedans.
    Voici une portion de code que j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    System.Diagnostics.Process[] consoleProcesses = Process.GetProcessesByName("cmd");
    if (consoleProcesses.Length > 0){
       Process consoleProcess = consoleProcesses[0];
       consoleProcess.StartInfo.UseShellExecute = false;
       consoleProcess.StartInfo.RedirectStandardInput = true;
       consoleProcess.StandardInput.WriteLine("Essai d'ecriture dans la console");
       consoleProcess.StandardInput.Flush();
    }
    Ce code lève une InvalidOperationException. Si je deporte les deux dernieres lignes au moment où je clique sur un bouton par exemple, aucune exception n'est levée mais la console n'affiche rien... Avez-vous une idée ? J'ai trouvé beaucoup de tuto (tous) qui expliquent comment lire et ecrire dans les flux d'un processus qu'on lance mais aucun qui montre comment faire dans le cas d'un processus deja en cours d'execution.

    Merci par avance

  2. #2
    Membre très actif
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    321
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 321
    Par défaut
    Une idée ?

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    547
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 547
    Par défaut
    Salut,

    je n'ai pas la moindre idée de comment ecrire dans une console existante (sendkey + gestion de focus peut etre, pas tres clean mais bon). Par contre, utilisé des propriétés relatives au start de process, c'est sur que ca ne marchera pas.

    Bon courage. =)

  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
    Tu n'as qu'à compiler ton programme en tant qu'application console, et utiliser Console.WriteLine...
    Par contre si ton idée est d'avoir plusieurs applis qui écrivent dans la même console, ça ne marchera pas...

  5. #5
    Membre très actif
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    321
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 321
    Par défaut
    Bonjour,

    Je vous remercie pour vos réponses.

    Citation Envoyé par SirJulio Voir le message
    Salut,

    je n'ai pas la moindre idée de comment ecrire dans une console existante (sendkey + gestion de focus peut etre, pas tres clean mais bon). Par contre, utilisé des propriétés relatives au start de process, c'est sur que ca ne marchera pas.

    Bon courage. =)
    Je suis d'accord avec vous. J'ai testé cela un peu en desespoir de cause

    Citation Envoyé par tomlev Voir le message
    Tu n'as qu'à compiler ton programme en tant qu'application console, et utiliser Console.WriteLine...
    Par contre si ton idée est d'avoir plusieurs applis qui écrivent dans la même console, ça ne marchera pas...
    Effectivement, cela résoudrait mes problèmes ... mais n'est pas envisageable. Je travaille sur une librairie qui élargit les possibilités du langage actionscript (un projecteur). J'ai donc besoin que cela reste une dll

  6. #6
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    salut

    ca, ca t'irait ?

    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
    16
    17
    18
    19
     
    namespace CmdConsoleTest
    {
        public static class CmdConsole
        {
            [DllImport("kernel32")]
            static extern bool AllocConsole();
     
            public static void Run()
            {
                AllocConsole();
            }
     
            public static void Write(object obj)
            {
                Console.WriteLine(obj);
            }
        }
    }
    The Monz, Toulouse

Discussions similaires

  1. Ecrire dans une fenetre
    Par honrisse dans le forum Débuter
    Réponses: 16
    Dernier message: 20/04/2010, 18h55
  2. [A-00] ouvrir un mde dans une fenetre déjà ouverte
    Par noemieze dans le forum VBA Access
    Réponses: 1
    Dernier message: 07/10/2008, 14h08
  3. Ecrire dans une autre fenetre que celle de l'application
    Par aurelien59 dans le forum Windows
    Réponses: 3
    Dernier message: 15/05/2007, 11h50
  4. Réponses: 4
    Dernier message: 04/03/2007, 23h18
  5. gérer les jpg dans une fenetre directdraw???
    Par Anonymous dans le forum DirectX
    Réponses: 1
    Dernier message: 14/06/2002, 13h39

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