private void button3_Click(object sender, EventArgs e) { this.richTextBox1.Text = ""; ProcessCmdUtils pcm = null; Process ps = null; RegexUtils rgu = new RegexUtils(); string nmapPath = Environment.CurrentDirectory + "\\tools\\nmap\\nmap.exe"; //测试 if (!File.Exists(nmapPath)) { MessageBox.Show(ConstModel.TOOLS_ERROR_NMAP); return; } string ip = textBox1.Text; int port = 0; string cmd = ""; try { port = Convert.ToInt32(textBox2.Text); if (rgu.IPCheck(ip) || port >= ConstModel.MINIMUM_PORT_NUMBER && port <= ConstModel.MAXIMUM_PORT_NUMBER) { cmd = nmapPath + " -sT -p " + port + " " + ip; } else { MessageBox.Show(ConstModel.VOID_PARAMS); return; } pcm = new ProcessCmdUtils(); ps = pcm.DoTask(cmd, OutputNmapHandler); } catch (Exception ex) { if (ex.GetType().ToString() == ConstModel.DATA_FORMAT_ERROR) { MessageBox.Show(ConstModel.VOID_PORT_NUM); return; } } finally { if (ps != null) { ps.Close(); } } }
static int psTaskID = -1; //检测是否有上次执行的task,如果值为-1,则执行,否则kill掉上次执行未完成任务 private void button1_Click(object sender, EventArgs e) { richTextBox1.Text = ""; listBox1.Items.Clear(); ProcessCmdUtils pcm = null; Process ps = null; string cmd = ""; if (psTaskID != -1) { ProcessCmdUtils procKill = new ProcessCmdUtils(); bool killStatus = procKill.KillProcExec(psTaskID); //Console.WriteLine("try external "+psTaskID); if (killStatus) { psTaskID = -1; } } try { string address = textBox1.Text; cmd = "TRACERT.exe " + address; pcm = new ProcessCmdUtils(); ps = pcm.DoTask(cmd, OutputHandler); psTaskID = ps.Id;//将运行的process name 赋值给 paTaskName } catch { throw; } finally { ps.Close(); } }