次の方法で共有


ProcessStartInfo.RedirectStandardInput プロパティ

プロセスのコマンド入力を Process インスタンスの StandardInput メンバから読み取るかどうかを示す値を取得または設定します。このメンバを使用すると、入力を標準入力ストリーム (通常はキーボード) 以外のソースから読み取ることができます。たとえば、データをファイルから読み取ることができます。

Public Property RedirectStandardInput As Boolean
[C#]
public bool RedirectStandardInput {get; set;}
[C++]
public: __property bool get_RedirectStandardInput();public: __property void set_RedirectStandardInput(bool);
[JScript]
public function get RedirectStandardInput() : Boolean;public function set RedirectStandardInput(Boolean);

プロパティ値

入力を Process.StandardInput から読み取る場合は true 。それ以外の場合は false

解説

Process は、その標準入力ストリーム (通常はキーボード) から入力テキストを読み取ることができます。 StandardInput ストリームを使用すると、プロセスの入力をプログラムによって指定できます。たとえば、キーボード入力を使用せずに、指定したファイルの内容から入力を提供したり、別のプロセスからの出力を提供することができます。

メモ    StartInfo. RedirectStandardInput プロパティを true に設定する場合は、 StartInfo. UseShellExecute プロパティを false に設定する必要があります。設定しない場合は、 StandardInput ストリームに書き込みを行うと例外がスローされます。

使用例

[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 ファミリ

参照

ProcessStartInfo クラス | ProcessStartInfo メンバ | System.Diagnostics 名前空間 | UseShellExecute | StandardInput