• C#-执行cmd命令,获取结果


     

    using System;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace EFDemo {
        public partial class ExecCmd : Form {
            public ExecCmd() {
                InitializeComponent();
                Control.CheckForIllegalCrossThreadCalls = false;
            }
    
            private void button1_Click(object sender, EventArgs e) {
                if (pro == null) { MessageBox.Show("进程未开启"); return; }
                Task.Factory.StartNew(() => {
    
                    AppendLog("执行命令: " + textBox1.Text);
                    pro.StandardInput.WriteLine(textBox1.Text);
                    //pro.StandardInput.WriteLine("exit");
                    pro.StandardInput.AutoFlush = true;
                    //获取cmd窗口的输出信息
    
                    string output = "";
                    while (true) {
                        output = pro.StandardOutput.ReadLine();
                        AppendLog(output);
                    }
                });
            }
    
            public void AppendLog(string str) {
                textBox2.AppendText("
    " + str);
            }
    
    
            //CMD进程
            System.Diagnostics.Process pro = null;
            //启动线程
            private void button2_Click(object sender, EventArgs e) {
    
                if (pro != null) {
                    MessageBox.Show("只能运行一个程序!", "请确定", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    return;
                }
    
                AppendLog("初始化参数");
                pro = new System.Diagnostics.Process();
                pro.StartInfo.FileName = "cmd.exe";
                pro.StartInfo.UseShellExecute = false;
                pro.StartInfo.RedirectStandardError = true;
                pro.StartInfo.RedirectStandardInput = true;
                pro.StartInfo.RedirectStandardOutput = true;
                pro.StartInfo.CreateNoWindow = true;
                //pro.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
                AppendLog("启动");
                pro.Start();
            }
    
            //关闭
            private void button3_Click(object sender, EventArgs e) {
                if (pro != null) {
                    pro.Close();
                    pro = null;
                    AppendLog("关闭");
                }
            }
    
    
    
        }
    }
    
  • 相关阅读:
    Kruscal示例程序
    poj 1789 最小生成树prim算法
    取名无力
    最短路dijkstra示例程序
    zoj 1203 最小生成树—kruscal算法
    最小生成树prim算法示例程序
    zoj 1586 最小生成树 prim算法
    poj 1861 Network 最小生成树 kruscal算法
    英国研制出情感机器人能感知主人的悲伤
    微软将发布“群体搜索”
  • 原文地址:https://www.cnblogs.com/grj001/p/12223438.html
Copyright © 2020-2023  润新知