2011-07-23 9 views
2

からバイナリデータを取得する:私は以下のようなコードでプロセスを始めているStandardOutput

// some of the flags are not needed 
process.StartInfo.CreateNoWindow = true; 
process.StartInfo.ErrorDialog = false; 
process.StartInfo.UseShellExecute = false; 
process.StartInfo.RedirectStandardError = true; 
process.StartInfo.RedirectStandardOutput = true; 
process.EnableRaisingEvents = true; 
process.OutputDataReceived += process_OutputDataReceived; 
process.ErrorDataReceived += process_OutputDataReceived; 
process.Start(); 
process.BeginErrorReadLine(); 
process.BeginOutputReadLine(); 

void process_OutputDataReceived(object sender, DataReceivedEventArgs e) 
{ 
} 

void process_ErrorDataReceived(object sender, DataReceivedEventArgs e) 
{ 
} 

私はに実行している問題は​​オブジェクトが文字列であるData性質を持っているということです。私はそれがバイナリデータとして標準出力データを読む必要があります。文字列データを適切なバイナリデータに戻す方法がないと推測しているので、バイナリデータを受け取るために別のメソッドを使用することについての提案はすばらしくなります。

+1

「Process.StandardOutputからのバイナリ出力のキャプチャ」(http://stackoverflow.com/questions/4143281/capturing-binary-output-from-process-standardoutput)を参照してください。 OutputDataReceivedイベントハンドラ)を実行します。 –

答えて

2

この質問にコメントしたブラッドリー・グリンジャーは正しかった。イベントハンドラは、標準出力からのバイナリデータの取得をサポートしていません。メインループを使用し、読み取り機能を使用して標準からデータを引き出すことに切り替えなければならなかった。

+1

ただ難しい方法を見つけました。 –

関連する問題