Domanda

Sto cercando di interagire con il prompt dei comandi di Windows dal codice. Il mio obiettivo è visualizzare il prompt, inserire un comando, visualizzare l'output e ripetere. Ma non riesco a far funzionare i primi tre contemporaneamente.

      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();            
       }

Il codice sopra si blocca. Se non imposto RedirectStandardInput, posso visualizzare l'intero prompt. E se chiudo il writer per StandardInput posso ottenere un comando da eseguire, ma senza vedere il prompt o essere in grado di ripeterlo. Quindi, come posso ottenere il prompt per mostrare, eseguire un comando e mostrare l'output ... ripetutamente?

Spero di riprodurre il comportamento della riga di comando di Console2 ma sono un po 'sopraffatto da è il codice sorgente.

È stato utile?

Soluzione

Controlla http://www.codeproject.com/cs/library/CommandLineHelper. asp

[marc_s] che l'URL genera una pagina 404 non trovata.

L'URL giusto molto probabilmente è: http://www.codeproject.com/ KB / string / CommandLineHelper.aspx

Altri suggerimenti

Penso che non puoi. Se si visualizza il comando Prompt della console, non sarà possibile leggere l'output. Penso che devi disegnare il tuo prompt dei comandi se stai leggendo l'output di un processo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top