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
プロパティ値
false です。
例
次の例は、プロセスの StandardInput ストリームをリダイレクトする方法を示しています。
sort コマンドは、テキスト入力を読み取って並べ替えるコンソール アプリケーションです。
この例では、リダイレクトされた入力を使用して sort コマンドを開始します。 次に、ユーザーにテキストの入力を求め、リダイレクトされたsort ストリームを介してStandardInput プロセスにテキストを渡します。
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
注釈
Processは、標準入力ストリーム (通常はキーボード) から入力テキストを読み取ることができます。 StandardInput ストリームをリダイレクトすることで、プロセスの入力をプログラムで指定できます。 たとえば、キーボード入力を使用する代わりに、指定されたファイルの内容または別のアプリケーションからの出力からテキストを提供できます。
Note
UseShellExecuteを false に設定する場合は、RedirectStandardInputを true に設定する必要があります。 それ以外の場合、 StandardInput ストリームに書き込むと例外がスローされます。