Example #1
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);
        }
Example #2
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);
        }