コード例 #1
0
        public void RunCommandLine(string typeStr, string app_name, string command_arguments)
        {
            process_info pi = new process_info();

            count++;
            pi.idx       = count;
            pi.desc      = typeStr;
            pi.startTime = DateTime.Now;
            pi.m_process = new Process();
            pi.m_process.StartInfo.FileName               = app_name;// "ipconfig.exe";
            pi.m_process.StartInfo.UseShellExecute        = false;
            pi.m_process.StartInfo.RedirectStandardOutput = true;
            pi.m_process.StartInfo.Arguments              = command_arguments;
            //m_ue_process = Process.Start(app_name, command_arguments);
            pi.m_process.Exited             += process_Exited;
            pi.m_process.OutputDataReceived += process_ReceiveOutput;
            pi.m_process.Start();
            pi.m_process.BeginOutputReadLine();
            pi.SetState(1);
            pi.UpdateStayTime();
            pi.itemIdx = 0;// listBox_Process.Items.Add(pi.ToDescString());
            m_processList.Add(pi.idx, pi);
            //m_process.WaitForExit();
            //m_process.Close();
            //pi.desc = string.Format("{0} Deploy Scene. {1} {2:hh\\:mm\\:ss}", pi.idx, pi.state,pi.stayTime);

            Program.AddCommandLog(typeStr, app_name, command_arguments);
        }
コード例 #2
0
        public void Run()
        {
            foreach (var p in m_process_task.Keys.ToList())
            {
                ProcessTask pt = m_process_task[p];
                pt.Run();
                m_process_task[p] = pt;
                //listBox_Process.Items[p.Value.itemIdx] = p.Value.ToDescString();
            }
            bool isTaskBusy = false;

            foreach (var p in m_process_task)
            {
                if (!p.Value.isDone)
                {
                    isTaskBusy = true;
                }
            }
            if (!isTaskBusy)
            {
                m_process_task.Clear();
            }


            foreach (var p in m_processList.Keys.ToList())
            {
                process_info pi = m_processList[p];
                if (pi.state > 0)
                {
                    pi.m_process.Refresh();
                    if (pi.m_process.HasExited)
                    {
                        pi.SetState(0);
                    }
                    //p.Value.UpdateStayTime();
                    //listBox_Process.Items[pi.itemIdx] = pi.ToDescString();
                    m_processList[p] = pi;
                }
            }
            bool isIdle = true;

            foreach (var p in m_processList)
            {
                if (p.Value.state != 0)
                {
                    isIdle = false;
                }
            }
            if (isIdle)
            {
                m_processList.Clear();
            }

            //while (processState > 0)
            //{
            //    //Program.AddLog("..Refresh.." + DateTime.Now.ToString());
            //    m_process.Refresh();

            //    //m_process.CancelOutputRead();
            //    //m_process.BeginOutputReadLine();
            //    if (m_process.HasExited)
            //    {
            //        processState = 0;
            //    }
            //}
            //Program.AddLog("Command Line Process has exited.");
        }