ProcessStartInfo.RedirectStandardInput 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
애플리케이션의 입력을 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
속성 값
입력을true 에서 읽어야 하는 경우 StandardInput이고, 그러지 않으면 false입니다. 기본값은 false입니다.
예제
다음 예제에서는 프로세스의 스트림을 리디렉션하는 StandardInput 방법을 보여 줍니다.
sort 명령 읽고 텍스트 입력을 정렬 하는 콘솔 애플리케이션입니다.
이 예제에서는 리디렉션된 입력을 사용하여 sort 명령을 시작합니다. 그런 다음 사용자에게 텍스트를 묻는 메시지를 표시하고 리디렉션된 StandardInput 스트림을 sort 통해 텍스트를 프로세스에 전달합니다. 결과는 sort 콘솔에서 사용자에게 표시됩니다.
#using <System.dll>
using namespace System;
using namespace System::IO;
using namespace System::Diagnostics;
using namespace System::ComponentModel;
int 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.
Process^ myProcess = gcnew Process;
if ( myProcess )
{
myProcess->StartInfo->FileName = "Sort.exe";
myProcess->StartInfo->UseShellExecute = false;
myProcess->StartInfo->RedirectStandardInput = true;
myProcess->Start();
StreamWriter^ myStreamWriter = myProcess->StandardInput;
if ( myStreamWriter )
{
// 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 && inputText->Length > 0 )
{
numLines++;
myStreamWriter->WriteLine( inputText );
}
}
while ( inputText && inputText->Length != 0 );
// Write a report header to the console.
if ( numLines > 0 )
{
Console::WriteLine( " {0} sorted text line(s) ", numLines.ToString() );
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();
myProcess->Close();
}
}
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
설명
은 Process 표준 입력 스트림(일반적으로 키보드)에서 입력 텍스트를 읽을 수 있습니다. 스트림을 StandardInput 리디렉션하여 프로그래밍 방식으로 프로세스의 입력을 지정할 수 있습니다. 예를 들어 키보드 입력을 사용 하는 대신 지정 된 파일의 내용에서 텍스트 또는 다른 애플리케이션에서 출력을 제공할 수 있습니다.
참고
를 false 로 설정 UseShellExecute 하려면 를 로 설정 RedirectStandardInputtrue해야 합니다. 그렇지 않으면 스트림에 쓰기가 StandardInput 예외를 throw합니다.