Condividi tramite


Process.StandardInput Proprietà

Definizione

Ottiene un flusso usato per scrivere l'input dell'applicazione.

public:
 property System::IO::StreamWriter ^ StandardInput { System::IO::StreamWriter ^ get(); };
public System.IO.StreamWriter StandardInput { get; }
[System.ComponentModel.Browsable(false)]
public System.IO.StreamWriter StandardInput { get; }
member this.StandardInput : System.IO.StreamWriter
[<System.ComponentModel.Browsable(false)>]
member this.StandardInput : System.IO.StreamWriter
Public ReadOnly Property StandardInput As StreamWriter

Valore della proprietà

Oggetto StreamWriter che può essere usato per scrivere il flusso di input standard dell'applicazione.

Attributi

Eccezioni

Il flusso StandardInput non è stato definito perché la proprietà RedirectStandardInput è impostata su false.

Esempio

Nell'esempio seguente viene illustrato come reindirizzare il StandardInput flusso di un processo. L'esempio avvia il sort comando con input reindirizzato. Richiede quindi all'utente di inviare testo e passarlo al processo tramite il sort flusso reindirizzato StandardInput . I sort risultati vengono visualizzati all'utente nella console.

#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();
   }
}
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();
            }
        }
    }
}

Imports System.IO
Imports System.Diagnostics
Imports System.ComponentModel

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.
            Using 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($" {numLines} sorted text line(s) ")
                    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()
            End Using

        End Sub
    End Class  'StandardInputTest
End Namespace 'Process_StandardInput_Sample

Commenti

Un Process oggetto può leggere il testo di input dal flusso di input standard, in genere la tastiera. Reindirizzando il flusso, è possibile specificare a livello di codice l'input StandardInput . Ad esempio, anziché usare l'input della tastiera, è possibile fornire testo dal contenuto di un file o un output designato da un'altra applicazione.

Nota

Per usare StandardInput, è necessario impostare ProcessStartInfo.UseShellExecute su falsee è necessario impostare ProcessStartInfo.RedirectStandardInput su true. In caso contrario, la scrittura nel flusso genera un'eccezione StandardInput .

Si applica a

Vedi anche