ProcessStartInfo.RedirectStandardInput 속성

정의

애플리케이션의 입력이 스트림에서 StandardInput 읽혀지는지 여부를 나타내는 값을 가져오거나 설정합니다.

public:
 property bool RedirectStandardInput { bool get(); void set(bool value); };
public bool RedirectStandardInput { get; set; }
member this.RedirectStandardInput : bool with get, set
Public Property RedirectStandardInput As Boolean

속성 값

입력을 읽 어야 하면 그렇지 않으면 . 기본값은 false입니다.

예제

다음 예제에서는 프로세스의 스트림을 리디렉션하는 StandardInput 방법을 보여 줍니다. 이 sort 명령은 텍스트 입력을 읽고 정렬하는 콘솔 애플리케이션입니다.

이 예제에서는 리디렉션된 입력을 사용하여 sort 명령을 시작합니다. 그런 다음 사용자에게 텍스트를 입력하라는 메시지를 표시하고 리디렉션된 StandardInput 스트림을 sort 통해 프로세스에 텍스트를 전달합니다. 결과는 sort 콘솔에서 사용자에게 표시됩니다.

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

Imports System.IO
Imports System.Diagnostics
Imports System.ComponentModel

Namespace Process_StandardInput_Sample

    Class StandardInputTest

        Shared Sub 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 myProcess As New Process()

                myProcess.StartInfo.FileName = "Sort.exe"
                myProcess.StartInfo.UseShellExecute = False
                myProcess.StartInfo.RedirectStandardInput = True

                myProcess.Start()

                Dim myStreamWriter As StreamWriter = myProcess.StandardInput

                ' Prompt the user for input text lines to sort. 
                ' Write each line to the StandardInput stream of
                ' the sort command.
                Dim inputText As String
                Dim numLines As Integer = 0
                Do
                    Console.WriteLine("Enter a line of text (or press the Enter key to stop):")

                    inputText = Console.ReadLine()
                    If inputText.Length > 0 Then
                        numLines += 1
                        myStreamWriter.WriteLine(inputText)
                    End If
                Loop While inputText.Length <> 0


                ' Write a report header to the console.
                If numLines > 0 Then
                    Console.WriteLine($" {numLines} sorted text line(s) ")
                    Console.WriteLine("------------------------")
                Else
                    Console.WriteLine(" No input was sorted")
                End If

                ' 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()
            End Using

        End Sub
    End Class  'StandardInputTest
End Namespace 'Process_StandardInput_Sample

설명

A는 Process 표준 입력 스트림(일반적으로 키보드)에서 입력 텍스트를 읽을 수 있습니다. 스트림을 StandardInput 리디렉션하여 프로그래밍 방식으로 프로세스의 입력을 지정할 수 있습니다. 예를 들어 키보드 입력을 사용하는 대신 지정된 파일의 내용이나 다른 애플리케이션의 출력에서 텍스트를 제공할 수 있습니다.

Note

로 설정하려면 설정 UseShellExecutefalseRedirectStandardInputtrue해야 합니다. 그렇지 않으면 스트림에 쓰기가 StandardInput 예외를 throw합니다.

적용 대상

추가 정보