Process.StandardInput Właściwość

Definicja

Pobiera strumień używany do zapisywania danych wejściowych aplikacji.

C#
public System.IO.StreamWriter StandardInput { get; }
C#
[System.ComponentModel.Browsable(false)]
public System.IO.StreamWriter StandardInput { get; }

Wartość właściwości

Element StreamWriter , którego można użyć do zapisania standardowego strumienia wejściowego aplikacji.

Atrybuty

Wyjątki

Strumień StandardInput nie został zdefiniowany, ponieważ RedirectStandardInput jest ustawiony na falsewartość .

Przykłady

W poniższym przykładzie pokazano, jak przekierować StandardInput strumień procesu. Przykład uruchamia sort polecenie z przekierowanymi danymi wejściowymi. Następnie monituje użytkownika o tekst i przekazuje go do sort procesu za pomocą przekierowanego StandardInput strumienia. Wyniki sort są wyświetlane użytkownikowi w konsoli programu .

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

Uwagi

Tekst Process wejściowy może odczytywać ze standardowego strumienia wejściowego, zazwyczaj klawiatury. Przekierowując StandardInput strumień, można programowo określić dane wejściowe. Na przykład zamiast używać danych wejściowych klawiatury, możesz podać tekst z zawartości wyznaczonego pliku lub danych wyjściowych z innej aplikacji.

Uwaga

Aby użyć StandardInputpolecenia , musisz ustawić wartość ProcessStartInfo.UseShellExecutefalse, a musisz ustawić wartość ProcessStartInfo.RedirectStandardInputtrue. W przeciwnym razie zapisywanie w strumieniu StandardInput zgłasza wyjątek.

Dotyczy

Produkt Wersje
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

Zobacz też