c#调用exe文件:System.Diagnostics.Process.Start()的使用

来源:互联网 发布:sql无法访问数据库 编辑:程序博客网 时间:2024/06/05 16:46

C#的web应用和C#的window窗体应用执行相同的代码效果可能不尽相同。

这时候一个解决方法是通过C#语句执行C#窗体应用。

使用System.Diagnostics.Process类的Start方法可以实现这个功能。

这个方法的标准解释是:

通过指定应用程序的名称和一组命令行参数来启动一个进程资源,并将该资源与新的 System.Diagnostics.Process 组件相关联。

这个方法有多个重载,常用的有:

Start(string fileName)和Start(string fileName,string args)

fileName参数: 要在该进程中运行的应用程序文件的名称。

args参数: 启动该进程时传递的命令行实参。

比如System.Diagnostics.Process.Start("e:/a.exe");调用e盘根目录的a.exe执行。

传参:

如果a.exe需要传参,可以使用Start(string fileName,string args)。

这时候a.exe的Main方法应该是static void Main(string[] args)。

比如a.exe需要传两个参数执行:

static void Main(string[] args) 

{

    string name1 = args[0];

    string name2 = args[1];

}

那么在使用System.Diagnostics.Process.Start方法调用exe的时候,要把两个字符串参数用空格拼接成字符串args,即:

System.Diagnostics.Process.Start("e:/a.exe", "xiaoming zhangsan");

返回值:

此方法的返回值是与该进程关联的新的 System.Diagnostics.Process 组件;如果没有启动进程资源(例如,如果重用了现有进程),则为 null。

如果想等待a.exe执行完毕再执行之后的语句,可以用WaitForExit方法。比如:

System.Diagnostics.Process p = System.Diagnostics.Process.Start("e:/a.exe", "xiaoming zhangsan");

if (p != null) 

{

    p.WaitForExit();

}

WaitForExit不传参数表示无限期等待a.exe进程的结束,a.exe一直不结束,代码就一直不往下走。

WaitForExit可以传一个int类型的参数表示等待的最大时间(毫秒数)。

0 0
原创粉丝点击