C# 调用外部exe,且带参数
Posted nanke_yh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 调用外部exe,且带参数相关的知识,希望对你有一定的参考价值。
目录
1、引言
据说界面程序开发,首选C#(像lebview之类的也很好)。但是,能不能用其他语言开发核心代码,只用C#做界面?毕竟每种语言都有自己擅长的领域。那么就引出如何使用C#调用外部带有参数exe的问题。
在之前的DSP篇中有一篇文章有涉及到C#调用外部exe的:
DSP篇--C6701 BOOT(头文件烧写法)_nanke_yh的博客-CSDN博客https://blog.csdn.net/nanke_yh/article/details/106606707其中调用代码为:System.Diagnostics.Process.Start(exePath, textBox1.Text);
查看System.Diagnostics的从元数据可以发现:
public static Process Start(string fileName, string arguments);
这Start重载参数不超2个,正好这个exe只需要外部传入一个参数的,那调用的exe需要传入多个参数的又该怎么写呢?
2、exe调用
在cmd中多参数外部exe的调用方式有:比如有个example.exe,能接受4个参数.
example.exe "1" "a" "2" "3"
那么在C#中参数只能填一个,那么将后面属于参数的都放在一起组成一个字符串,传入即可。
具体代码:
// 调用exe的函数
using System.Diagnostics;
public bool StartProcess(string runFilePath, params string[] args)
{
string s = "";
foreach (string arg in args)
{
s = s + arg + " ";
}
s = s.Trim();
Process process = new Process();//创建进程对象
ProcessStartInfo startInfo = new ProcessStartInfo(runFilePath, s); // 括号里是(程序名,参数)
process.StartInfo = startInfo;
process.Start();
return true;
}
其中就是将传入的args字符串数组遍历并整合成一个长字符串,从而加上exe的运行路径满足System.Diagnostics.Process的重载结构。
其具体使用或调用为:
string exe_path = "E:/example.exe"; // 被调exe
string[] the_args = { "1","2","3","4"}; // 被调exe接受的参数
StartProcess(exe_path, the_args);
以上是关于C# 调用外部exe,且带参数的主要内容,如果未能解决你的问题,请参考以下文章