本文主要是介绍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类型的参数表示等待的最大时间(毫秒数)。
这篇关于c#调用exe文件:System.Diagnostics.Process.Start()的使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!