Ejemplo n.º 1
0
 public bool AsyncStart(string CmdName, string CmdArgv, EndProcDelegate epd = null, bool bIsShow = true)
 {
     if (IdleCheck() == false)
     {
         return(false);
     }
     this.bIsShow = bIsShow;
     m_Thrd       = new Thread(delegate() { RunProc(CmdName, CmdArgv, epd); });
     m_Thrd.Start();
     return(true);
 }
Ejemplo n.º 2
0
 public bool AsyncStart(string CmdName, string CmdArgv, EndProcDelegate epd = null, bool bIsShow = true)
 {
     if (IdleCheck() == false)
     {
         return false;
     }
     this.bIsShow = bIsShow;
     m_Thrd = new Thread(delegate() { RunProc(CmdName, CmdArgv, epd); });
     m_Thrd.Start();
     return true;
 }
Ejemplo n.º 3
0
        private void RunProc(string CmdName, string CmdArgv, EndProcDelegate epd)
        {
            m_Proc = new Process();

            m_Proc.StartInfo.FileName               = CmdName;
            m_Proc.StartInfo.Arguments              = CmdArgv;
            m_Proc.StartInfo.CreateNoWindow         = true;
            m_Proc.StartInfo.UseShellExecute        = false;
            m_Proc.StartInfo.RedirectStandardInput  = true; //标准输入重定向
            m_Proc.StartInfo.RedirectStandardOutput = true; //标准输出重定向
            m_Proc.StartInfo.RedirectStandardError  = true;

            m_Proc.OutputDataReceived += new DataReceivedEventHandler(OutputRecv);
            m_Proc.ErrorDataReceived  += new DataReceivedEventHandler(ErrorRecv);

            m_Proc.Start();
            bIsRun           = true;
            m_lb_Status.Text = "进程状态: 运行中";
            m_txt_Log.Clear();

            m_RetOutputMsg = new StringBuilder();
            m_Proc.BeginErrorReadLine();
            m_Proc.BeginOutputReadLine();

            m_Proc.WaitForExit();
            int ExitCode = m_Proc.ExitCode;

            m_Proc.Close();
            bIsRun = false;

            if (epd != null)
            {
                epd(m_RetOutputMsg.ToString(), ExitCode);
            }
            m_lb_Status.Text = "进程状态: 准备中";
        }
Ejemplo n.º 4
0
        private void RunProc(string CmdName, string CmdArgv, EndProcDelegate epd)
        {
            m_Proc = new Process();

            m_Proc.StartInfo.FileName = CmdName;
            m_Proc.StartInfo.Arguments = CmdArgv;
            m_Proc.StartInfo.CreateNoWindow = true;
            m_Proc.StartInfo.UseShellExecute = false;
            m_Proc.StartInfo.RedirectStandardInput = true;//标准输入重定向 
            m_Proc.StartInfo.RedirectStandardOutput = true;//标准输出重定向 
            m_Proc.StartInfo.RedirectStandardError = true;

            m_Proc.OutputDataReceived += new DataReceivedEventHandler(OutputRecv);
            m_Proc.ErrorDataReceived += new DataReceivedEventHandler(ErrorRecv);

            m_Proc.Start();
            bIsRun = true;
            m_lb_Status.Text = "Proc Status: Running";
            m_txt_Log.Clear();

            m_RetOutputMsg = new StringBuilder();
            m_Proc.BeginErrorReadLine();
            m_Proc.BeginOutputReadLine();

            m_Proc.WaitForExit();
            int ExitCode = m_Proc.ExitCode;
            m_Proc.Close();
            bIsRun = false;

            if (epd != null)
            {
                epd(m_RetOutputMsg.ToString(), ExitCode);
            }
            m_lb_Status.Text = "Proc Status: Ready";
        }