Пример #1
0
 public FormSvrSubProc(SvrProc proc)
     : this()
 {
     this.proc = proc;
     proc.output += proc_output;
     proc.error += proc_output;
     proc.info += proc_output;
     proc.exited += proc_exited;
     this.Text += proc.nameWithId;
     this.Activated += FormSvrSubProc_Activated;
     this.CreateHandle();
 }
Пример #2
0
 public void server_newProc(SvrProc proc)
 {
     myinvoke(() =>
     {
         proc.tsmi = new ToolStripMenuItem(proc.nameWithId);
         var form = new FormSvrSubProc(proc);
         if (Properties.Settings.Default.ShowAfterCreate)
             form.Show();
         proc.tsmi.Click += (a1, a2) =>
         {
             if (!form.IsDisposed)
             {
                 form.Show();
                 form.Activate();
             }
         };
         proc.tsmi.MouseUp += (sender, e) =>
         {
             if (e.Button == MouseButtons.Right)
             {
                 procListToolStripMenuItem.HideDropDown();
                 if (MessageBox.Show(Tools.MakeString("确定停止子进程(", proc.nameWithId, ")吗?"), "确认", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk) == DialogResult.OK)
                     try
                     {
                         proc.process.Kill();
                     }
                     catch (Exception ex)
                     {
                         logLine("停止进程时发生错误:", ex.Message);
                     }
             }
         };
         proc.exited += (a1, a2) =>
         {
             myinvoke(() =>
             {
                 procListToolStripMenuItem.DropDownItems.Remove(proc.tsmi);
                 f5Title();
                 logLine("子进程(", proc.nameWithId, ")已退出,Exit Code:", proc.process.ExitCode);
             });
         };
         procListToolStripMenuItem.DropDownItems.Add(proc.tsmi);
         f5Title();
     });
 }
Пример #3
0
 private void newProcToolStripMenuItem_Click(object sender, EventArgs e)
 {
     string name = null;
     if (procNameToolStripTextBox.Text != "")
         name = procNameToolStripTextBox.Text;
     procNameToolStripTextBox.Text = "";
     var proc = new SvrProc(server, name);
     proc.start();
     logLine("已创建子进程:", proc.nameWithId, "。(PID ", proc.process.Id, ")");
 }
Пример #4
0
 public void createdProc(SvrProc proc)
 {
     if (newProc != null)
         newProc(proc);
 }