C# で System.Diagnostics.Process を使用してプロセスを作成しています。クラスから継承されたクラス
を作成しました
。問題は、ErrorDataRecieved または OutputDataReceived が起動されていないことです。CCProcess
Process
public CCProcess(string executablePath, string[] parameters, CCProcessInfo processInfo)
{
this.ProcessInfo = processInfo;
this.OutputMessages = new List<ProcessOutputMessage>();
this.ProcessId = Guid.NewGuid().ToString();
base.EnableRaisingEvents = true;
this.StartInfo = new ProcessStartInfo(executablePath)
{
Arguments = string.Join(" ", parameters.Select(s => string.Format("\"{0}\"", s))),
CreateNoWindow = true,
ErrorDialog = false,
RedirectStandardError = true,
RedirectStandardInput = true,
RedirectStandardOutput = true,
StandardErrorEncoding = Encoding.UTF8,
StandardOutputEncoding = Encoding.UTF8,
WindowStyle = ProcessWindowStyle.Hidden,
UseShellExecute = false
};
this.ErrorDataReceived += (sender, e) =>
{
this.OutputMessages.Add(new ProcessOutputMessage() { Message = e.Data, Type = OutputType.Error });
if (this.ErrorData_Recieved != null&&!string.IsNullOrEmpty(e.Data))
{
this.ProcessInfo.LastResponseFromProcess = DateTime.Now;
this.ErrorData_Recieved(e.Data);
}
};
this.OutputDataReceived += (sender, e) =>
{
this.OutputMessages.Add(new ProcessOutputMessage() { Message = e.Data, Type = OutputType.Output });
if (OutputData_Recieved != null && !string.IsNullOrEmpty(e.Data))
{
this.ProcessInfo.LastResponseFromProcess = DateTime.Now;
OutputData_Recieved(e.Data);
}
};
}
私は何を間違っていますか?
提供されるコードはクラスのコンストラクターですCCProcess