次の方法で共有


Process.StandardInput プロパティ

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

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

プロパティ値

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

例外

例外の種類 条件
InvalidOperationException StandardInput 値が定義されていません。 StartInfo プロパティの RedirectStandardInputfalse である可能性があります。

解説

StandardInput を使用するには、 StartInfo プロパティの RedirectStandardInput プロパティを true に指定しておく必要があります。設定しない場合は、 StandardInput プロパティを読み取ると例外がスローされます。

メモ    StandardInputtrue に設定するには、 StartInfo プロパティの UseShellExecutefalse になっている必要があります。

使用例

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

.NET Framework セキュリティ:

参照

Process クラス | Process メンバ | System.Diagnostics 名前空間 | StandardOutput | StandardError | ProcessStartInfo.RedirectStandardInput