C#调用Exe

C#调用Exe

==========================================================

    class Program
    {
        static void DisplayBitArrAY()
        {
            System.Diagnostics.Process process = new System.Diagnostics.Process();   
            process.StartInfo.FileName = @"D:\Program Files (x86)\Tencent\QQ\Bin\QQ.exe";
            process.StartInfo.UseShellExecute = false;
            process.StartInfo.RedirectStandardOutput = true;
            process.StartInfo.CreateNoWindow = true;
            process.StartInfo.Arguments = "你好, 北京 欢迎你!";

            process.Start();//process.Close();

            process.WaitForExit();// if (process.HasExited)
            Console.WriteLine("complete : {0}", process.ExitCode);
        }
        static void Main(string[] args)
        {
            DisplayBitArrAY();
        }
    }



==============================================================

在编写程序时经常会使用到调用可执行程序的情况,本文将简单介绍C#调用exe的方法。在C#中,通过Process类来进行进程操作。 Process类在System.Diagnostics包中。



示例一



using System.Diagnostics;



Process p = Process.Start("notepad.exe");
p.WaitForExit();//关键,等待外部程序退出后才能往下执行




通过上述代码可以调用记事本程序,注意如果不是调用系统程序,则需要输入全路径。



示例二



当需要调用cmd程序时,使用上述调用方法会弹出令人讨厌的黑窗。如果要消除,则需要进行更详细的设置。



Process类的StartInfo属性包含了一些进程启动信息,其中比较重要的几个



FileName                可执行程序文件名



Arguments              程序参数,已字符串形式输入
CreateNoWindow     是否不需要创建窗口
UseShellExecute      是否需要系统shell调用程序



通过上述几个参数可以让讨厌的黑屏消失



System.Diagnostics.Process exep = new System.Diagnostics.Process();
exep.StartInfo.FileName = binStr;
exep.StartInfo.Arguments = cmdStr;
exep.StartInfo.CreateNoWindow = true;
exep.StartInfo.UseShellExecute = false;
exep.Start();
exep.WaitForExit();//关键,等待外部程序退出后才能往下执行


或者


System.Diagnostics.Process exep = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.FileName = binStr;
startInfo.Arguments = cmdStr;
startInfo.CreateNoWindow = true;
startInfo.UseShellExecute = false;
exep.Start(startInfo);
exep.WaitForExit();//关键,等待外部程序退出后才能往下执行

猜你喜欢

转载自blog.csdn.net/lm393485/article/details/88892347