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(); //从输出流取得命令执行结果
}