私はこれをここでいくつかのチュートリアル/回答で機能させようと試みてきましたが、残念ながらそれはできませんでした。
私がやりたいのは、プロセスを実行し、そのDefaultOutputをキャプチャして、バイト配列に追加することです。私がこれまでに得たものは次のとおりです。
private void startProcess(string path, string arguments)
{
Process p = new Process();
p.StartInfo.FileName = path;
p.StartInfo.Arguments = arguments;
p.StartInfo.UseShellExecute = false;
p.StartInfo.CreateNoWindow = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.OutputDataReceived += p_OutputDataReceived;
p.EnableRaisingEvents = true;
p.Start();
p.BeginErrorReadLine();
p.BeginOutputReadLine();
p.WaitForExit();
}
void p_OutputDataReceived(object sender, DataReceivedEventArgs e)
{
string str = e.Data;
// what goes here?!
}
私の現在の問題は次のとおりです。このデータが入ってくるときに(成長する)バイト配列に追加するにはどうすればよいですか、またはこの目的により適した別のデータ型がありますか?startProcess
また、この宛先バイト配列をどこで宣言するかわかりません。プロセスが終了した後もデータを処理し続けることができるように、メソッドのどこかにあることが望ましいですが、これをどのように渡すことができp_OutputDataReceived
ますか?
ありがとう!