Question

J'essaie d'interagir avec l'invite de commande Windows à partir du code. Mon but est d’afficher l’invite, de mettre une commande, d’afficher le résultat et de répéter. Mais n'arrive pas à faire travailler les trois premiers en même temps.

      private void button2_Click(object sender, EventArgs e)
      {
        Process proc = new Process();
        proc.StartInfo.FileName = "cmd";
        proc.StartInfo.CreateNoWindow = true;
        proc.StartInfo.UseShellExecute = false;
        proc.StartInfo.RedirectStandardOutput = true;
        proc.StartInfo.RedirectStandardInput = true;

        proc.Start();
        StreamReader k = new StreamReader(proc.StandardOutput.BaseStream);

        textBox2.Text = k.ReadToEnd();            
       }

Le code ci-dessus se bloque. Si je ne configure pas RedirectStandardInput, je peux afficher l'intégralité de l'invite. Et si je ferme le rédacteur de StandardInput, je peux exécuter une commande, mais sans afficher l'invite ni pouvoir la répéter. Alors, comment puis-je obtenir l'invite à afficher, exécuter une commande et afficher la sortie ... à plusieurs reprises?

J'espère reproduire le comportement en ligne de commande de la Console2 , mais je suis un peu dépassé par c'est le code source.

Était-ce utile?

La solution

Vérifiez http://www.codeproject.com/cs/library/CommandLineHelper. asp

[marc_s] pour que l'URL aboutisse à une page 404 introuvable.

L'URL appropriée est probablement: http://www.codeproject.com/ KB / string / CommandLineHelper.aspx

Autres conseils

Je pense que tu ne peux pas. Si vous affichez l'invite de commande de la console, vous ne pourrez pas lire le résultat. Je pense que vous devez dessiner votre propre invite de commande si vous lisez le résultat d'un processus.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top