/// <summary> /// Запуск файла на выполнение /// </summary> internal static Boolean RunBat(String exeName, String param, ProcessBatExecute callback) { ProcessStartInfo processInfo = new ProcessStartInfo(exeName, param); processInfo.CreateNoWindow = true; processInfo.UseShellExecute = false; processInfo.RedirectStandardError = true; processInfo.RedirectStandardOutput = true; processInfo.RedirectStandardInput = true; Process process = Process.Start(processInfo); process.BeginOutputReadLine(); process.BeginErrorReadLine(); process.OutputDataReceived += (sender, e) => { if (callback != null && e.Data.IsValid()) { callback(Stdout.Output, e.Data); } }; process.ErrorDataReceived += (sender, e) => { if (callback != null && e.Data.IsValid()) { callback(Stdout.Error, e.Data); } }; process.WaitForExit(); int exitCode = process.ExitCode; process.Close(); return(exitCode == 0); }
/// <summary> /// Запуск файла на выполнение /// </summary> internal static Boolean RunBat(String exeName, String param, ProcessBatExecute callback) { ProcessStartInfo processInfo = new ProcessStartInfo(exeName, param); processInfo.CreateNoWindow = true; processInfo.UseShellExecute = false; processInfo.RedirectStandardError = true; processInfo.RedirectStandardOutput = true; processInfo.RedirectStandardInput = true; Process process = Process.Start(processInfo); process.BeginOutputReadLine(); process.BeginErrorReadLine(); process.OutputDataReceived += (sender, e) => { if (callback != null && e.Data.IsValid()) callback(Stdout.Output, e.Data); }; process.ErrorDataReceived += (sender, e) => { if (callback != null && e.Data.IsValid()) callback(Stdout.Error, e.Data); }; process.WaitForExit(); int exitCode = process.ExitCode; process.Close(); return (exitCode == 0); }