Export (0) Print
Expand All
This topic has not yet been rated - Rate this topic

ProcessStartInfo.RedirectStandardInput Property

Gets or sets a value indicating whether the process command input is read from the Process instance's StandardInput member, enabling you to read from a source other than the standard input stream (usually the keyboard). Used to read data from a file, for example.

[Visual Basic]
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);

Property Value

true to read input from Process.StandardInput; otherwise, false.

Remarks

A Process can read input text from its standard input stream, typically the keyboard. Using the StandardInput stream, you can programmatically specify the process's input. For example, instead of using keyboard input, you might provide input from a designated file's contents or output from another proces.

Note   You must set the StartInfo. UseShellExecute property to false if you want to set the StartInfo. RedirectStandardInput property to true. Otherwise, writing to the StandardInput stream throws an exception.

Example

[Visual Basic, C#, C++] The following example illustrates how to redirect the StandardInput stream of a process. The example starts the sort command with redirected input. It then prompts the user for text, and passes that to the sort process by means of the redirected System.Diagnostics.ProcessStartInfo.StandardInput stream. The sort results are displayed to the user on the console.

[Visual Basic] 

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] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button Language Filter in the upper-left corner of the page.

Requirements

Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family

See Also

ProcessStartInfo Class | ProcessStartInfo Members | System.Diagnostics Namespace | UseShellExecute | StandardInput

Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft. All rights reserved.