英語で読む

次の方法で共有


Process.StandardInput プロパティ

定義

アプリケーションの入力の書き込みに使用されるストリームを取得します。

public System.IO.StreamWriter StandardInput { get; }
[System.ComponentModel.Browsable(false)]
public System.IO.StreamWriter StandardInput { get; }

プロパティ値

アプリケーションの標準入力ストリームの書き込みに使用できる StreamWriter

属性

例外

RedirectStandardInputfalse に設定されているため、StandardInput ストリームが定義されませんでした。

次の例は、プロセスのストリームをリダイレクトする StandardInput 方法を示しています。 この例では、リダイレクトされた入力を 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();
            }
        }
    }
}

注釈

では Process 、標準の入力ストリーム (通常はキーボード) から入力テキストを読み取ることができます。 ストリームを StandardInput リダイレクトすることで、プログラムで入力を指定できます。 たとえば、キーボード入力を使用する代わりに、指定されたファイルの内容または別のアプリケーションからの出力からテキストを指定できます。

注意

を使用 StandardInputするには、 を に設定 ProcessStartInfo.UseShellExecute し、 を falseに設定 ProcessStartInfo.RedirectStandardInput する true必要があります。 それ以外の場合、ストリームに StandardInput 書き込むと例外がスローされます。

適用対象

こちらもご覧ください