private void button1_Click(object sender, EventArgs e) { // 调用代码 string[] cmd = new string[] { "ping 192.168.3.15 -n 1", "ping 192.168.3.16 -n 2" }; MessageBox.Show(Cmd(cmd)); CloseProcess("cmd.exe"); }
/// <summary> /// 运行CMD命令 /// </summary> /// <param name="cmd">命令</param> /// <returns></returns> public static string Cmd(string [] cmd) { Process p = new Process(); p.StartInfo.FileName = "cmd.exe"; p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardInput = true; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.RedirectStandardError = true; p.StartInfo.CreateNoWindow = true; p.Start(); p.StandardInput.AutoFlush = true; for (int i = 0; i < cmd.Length; i++) { p.StandardInput.WriteLine(cmd[i].ToString()); } p.StandardInput.WriteLine("exit"); string strRst = p.StandardOutput.ReadToEnd(); p.WaitForExit(); p.Close(); return strRst; }
/// <summary> /// 关闭进程 /// </summary> /// <param name="ProcName">进程名称</param> /// <returns></returns> public static bool CloseProcess(string ProcName) { bool result = false; System.Collections.ArrayList procList = new System.Collections.ArrayList(); string tempName = ""; int begpos; int endpos; foreach (System.Diagnostics.Process thisProc in System.Diagnostics.Process.GetProcesses()) { tempName = thisProc.ToString(); begpos = tempName.IndexOf("(") + 1; endpos = tempName.IndexOf(")"); tempName = tempName.Substring(begpos, endpos - begpos); procList.Add(tempName); if (tempName == ProcName) { if (!thisProc.CloseMainWindow()) thisProc.Kill(); // 当发送关闭窗口命令无效时强行结束进程 result = true; } } return result; }
转摘自:http://www.cnblogs.com/njnudt/archive/2009/12/03/1616135.html
|
请发表评论