Export (0) Print
Expand All
1 out of 1 rated this helpful - Rate this topic

Process.StandardInput Property

Gets a stream used to write the application's input.

[Visual Basic]
Public ReadOnly Property StandardInput As StreamWriter
[C#]
public StreamWriter StandardInput {get;}
[C++]
public: __property StreamWriter* get_StandardInput();
[JScript]
public function get StandardInput() : StreamWriter;

Property Value

A StreamWriter that can be used to write the application's standard input stream.

Exceptions

Exception Type Condition
InvalidOperationException The StandardInput value has not been defined. The StartInfo property's RedirectStandardInput might be false.

Remarks

In order to use StandardInput, you must have specified true for the StartInfo property's RedirectStandardInput property. Otherwise, reading the StandardInput property throws an exception.

Note    UseShellExecute on the StartInfo property must be false if you want to set StandardInput to true.

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

.NET Framework Security: 

See Also

Process Class | Process Members | System.Diagnostics Namespace | StandardOutput | StandardError | ProcessStartInfo.RedirectStandardInput

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