Process.StandardInput プロパティ
アセンブリ: System (system.dll 内)

Public ReadOnly Property StandardInput As StreamWriter
public StreamWriter StandardInput { get; }
アプリケーションの標準入力ストリームの書き込みに使用できる StreamWriter。


Process は、その標準入力ストリーム (通常はキーボード) から入力テキストを読み取ることができます。StandardInput ストリームをリダイレクトすることにより、入力をプログラムで指定できます。たとえば、キーボード入力を使用せずに、指定したファイルの内容からテキストを提供したり、別のアプリケーションからの出力を提供したりできます。
![]() |
---|
StandardInput を使用するには、ProcessStartInfo.UseShellExecute を false に設定し、ProcessStartInfo.RedirectStandardInput を true に設定する必要があります。設定しない場合は、StandardInput ストリームに書き込みを行うと例外がスローされます。 |

プロセスの StandardInput ストリームをリダイレクトする方法を次のコード例に示します。このコードは、リダイレクトされた入力を使用して sort コマンドを起動します。その後、ユーザーにテキストの入力を要求し、そのテキストをリダイレクトされた 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
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(); } } }
#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(); } }


Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Process クラス
Process メンバ
System.Diagnostics 名前空間
StandardOutput
Process.StandardError プロパティ
ProcessStartInfo.RedirectStandardInput
Weblioに収録されているすべての辞書からProcess.StandardInput プロパティを検索する場合は、下記のリンクをクリックしてください。

- Process.StandardInput プロパティのページへのリンク