アプリケーションの入力への書き込みに使用されるストリームを取得します。
Public ReadOnly Property StandardInput As StreamWriter
[C#]
public StreamWriter StandardInput {get;}
[C++]
public: __property StreamWriter* get_StandardInput();
[JScript]
public function get StandardInput() : StreamWriter;
プロパティ値
アプリケーションの標準入力ストリームへの書き込みに使用できる StreamWriter 。
例外
例外の種類 | 条件 |
---|---|
InvalidOperationException | StandardInput 値が定義されていません。 StartInfo プロパティの RedirectStandardInput が false である可能性があります。 |
解説
StandardInput を使用するには、 StartInfo プロパティの RedirectStandardInput プロパティを true に指定しておく必要があります。設定しない場合は、 StandardInput プロパティを読み取ると例外がスローされます。
メモ StandardInput を true に設定するには、 StartInfo プロパティの UseShellExecute が false になっている必要があります。
使用例
[Visual Basic, C#, C++] プロセスの StandardInput ストリームをリダイレクトする方法を次のコード例に示します。このコードは、リダイレクトされた入力を使用して sort コマンドを起動します。その後、ユーザーにテキストの入力を要求し、そのテキストをリダイレクトされた System.Diagnostics.ProcessStartInfo.StandardInput ストリームを通じて sort プロセスに渡します。 sort の結果はユーザーのコンソールに表示されます。
Imports System
Imports System.IO
Imports System.Diagnostics
Imports System.ComponentModel
Imports Microsoft.VisualBasic
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.
Dim 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(" {0} sorted text line(s) ", numLines)
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()
myProcess.Close()
End Sub 'Main
End Class 'StandardInputTest
End Namespace 'Process_StandardInput_Sample
[C#]
using System;
using System.IO;
using System.Diagnostics;
using System.ComponentModel;
namespace Process_StandardInput_Sample
{
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.
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(" {0} sorted text line(s) ", numLines);
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();
}
}
}
[C++]
#using <mscorlib.dll>
#using <System.dll>
using namespace System;
using namespace System::IO;
using namespace System::Diagnostics;
using namespace System::ComponentModel;
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.
Process *myProcess = new 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();
}
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
.NET Framework セキュリティ:
- SecurityPermission (完全信頼を指定して System.Diagnostic.Process のメンバを呼び出すためのアクセス許可) PermissionState.Unrestricted (関連する列挙体)
参照
Process クラス | Process メンバ | System.Diagnostics 名前空間 | StandardOutput | StandardError | ProcessStartInfo.RedirectStandardInput