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(); }
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(); }); }
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, ")"); }
public void createdProc(SvrProc proc) { if (newProc != null) newProc(proc); }