ProcessStartInfo.RedirectStandardInput Propriedade

Definição

Obtém ou define um valor que indica se a entrada de um aplicativo é lida do fluxo StandardInput.

public bool RedirectStandardInput { get; set; }

Valor da propriedade

true se a entrada deve ser lida de StandardInput; caso contrário, false. O padrão é false.

Exemplos

O exemplo a seguir ilustra como redirecionar o StandardInput fluxo de um processo. O sort comando é um aplicativo de console que lê e classifica a entrada de texto.

O exemplo inicia o sort comando com entrada redirecionada. Em seguida, ele solicita texto ao usuário e passa o texto para o sort processo por meio do fluxo redirecionado StandardInput . Os sort resultados são exibidos para o usuário no console.

using System;
using System.IO;
using System.Diagnostics;
using System.ComponentModel;

namespace ProcessStandardInputSample
{
    class StandardInputTest
    {
        static void Main()
        {
            Console.WriteLine("Ready to sort one or more text lines...");

            // Start the Sort.exe process with redirected input.
            // Use the sort command to sort the input text.
            using (Process myProcess = new Process())
            {
                myProcess.StartInfo.FileName = "Sort.exe";
                myProcess.StartInfo.UseShellExecute = false;
                myProcess.StartInfo.RedirectStandardInput = true;

                myProcess.Start();

                StreamWriter myStreamWriter = myProcess.StandardInput;

                // Prompt the user for input text lines to sort.
                // Write each line to the StandardInput stream of
                // the sort command.
                String inputText;
                int numLines = 0;
                do
                {
                    Console.WriteLine("Enter a line of text (or press the Enter key to stop):");

                    inputText = Console.ReadLine();
                    if (inputText.Length > 0)
                    {
                        numLines++;
                        myStreamWriter.WriteLine(inputText);
                    }
                } while (inputText.Length > 0);

                // Write a report header to the console.
                if (numLines > 0)
                {
                    Console.WriteLine($" {numLines} sorted text line(s) ");
                    Console.WriteLine("------------------------");
                }
                else
                {
                    Console.WriteLine(" No input was sorted");
                }

                // End the input stream to the sort command.
                // When the stream closes, the sort command
                // writes the sorted text lines to the
                // console.
                myStreamWriter.Close();

                // Wait for the sort process to write the sorted text lines.
                myProcess.WaitForExit();
            }
        }
    }
}

Comentários

Um Process pode ler o texto de entrada de seu fluxo de entrada padrão, normalmente o teclado. Ao redirecionar o StandardInput fluxo, você pode especificar programaticamente a entrada de um processo. Por exemplo, em vez de usar a entrada de teclado, você pode fornecer texto do conteúdo de um arquivo designado ou saída de outro aplicativo.

Nota

Você deve definir UseShellExecute como false se quiser definir RedirectStandardInput como true. Caso contrário, gravar no StandardInput fluxo gerará uma exceção.

Aplica-se a

Confira também