2011-12-25 17 views
0

このコードを実行:読書標準出力は、常に空

Process p = new Process(); 
p.StartInfo.UseShellExecute = false; 
p.StartInfo.FileName = "tool.exe"; 
p.Start(); 
p.WaitForExit(); 

はtool.exe実行し、出力を標準出力にいくつかのコンテンツを作成します。しかし、私がコンテンツをキャプチャしようとすると、何も出力されません。つまり、変数 "output"は常に空です。

実際にtool.exeが標準出力に出力されることを確認しました。標準出力ではありません。

誰もが何が起こっているのかを知っていますか?本当のテキストブックの例のようだとして、ここでは愚かな感じ始めて...

+0

を試してみてください。 – SLaks

+0

提案をお寄せいただきありがとうございますが、パラメータを指定せずにtool.exeを実行すると、すぐにキャプチャしようとするコンテンツが出力されます。 – Marcus

答えて

0
p.OutputDataReceived += new DataReceivedEventHandler 
     (
      delegate(object sender, DataReceivedEventArgs e) 
      {     
       using (StreamReader output = p.StandardOutput) 
       { 
        retMessage = output.ReadToEnd(); 
       } 
      } 
     ); 

は、それはおそらく入力を待っています。この:)

+0

ありがとう!まだ運がありません。何も通っていないだけです。 – Marcus

+0

はtool.exeのコンソールアプリですか? cmd.exeで実行しようとしましたか?出力は何ですか? – Elastep

+0

うん、それはコンソールアプリケーション(私は私のプロジェクトに含まれている)です。いくつかの文字列を出力します。 – Marcus

関連する問題