c#中利用process类调用外部程序以及执行dos命令

1.解决调用程序时,弹出嘿嘿的窗口的问题,见红色部分
2.提供判断调用程序是否正常退出的一种思路,见绿色部分

c#中的Process类可方便的调用外部程序,所以我们可以通过调用cmd.exe程序

加入参数 "/c " + 要执行的命令来执行一个dos命令(/c代表执行参数指定的命令后关闭cmd.exe /k参数则不关闭cmd.exe)
        private string RunCmd(string command)
        {
            //实例一个Process类,启动一个独立进程
            Process p = new Process();

            //Process类有一个StartInfo属性,这个是ProcessStartInfo类,包括了一些属性和方法,下面我们用到了他的几个属性:

            p.StartInfo.FileName = "cmd.exe";          //设定程序名
            p.StartInfo.Arguments = "/c " + command;    //设定程序执行参数
            p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
            p.StartInfo.UseShellExecute = false;        //关闭Shell的使用
            p.StartInfo.RedirectStandardInput = true;  //复位向标准输入
            p.StartInfo.RedirectStandardOutput = true;  //复位向标准输出
            p.StartInfo.RedirectStandardError = true;  //复位向错误输出
            p.StartInfo.CreateNoWindow = true;          //设置不显示窗口

            //p.Start();  //启动
    try
            {
                p.Start();
                p.WaitForExit();
                p.Close();
          }
          catch(Exception e)
          {
                e.ToString();
                return false;
          }
           
            //p.StandardInput.WriteLine(command);      //也可以用这种方式输入要执行的命令
            //p.StandardInput.WriteLine("exit");        //不过要记得加上Exit要不然下一行程序执行的时候会当机
           
            return p.StandardOutput.ReadToEnd();        //从输出流取得命令执行结果

        }
Sinoprise Network Studio
        ----专注.NET技术