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

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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值