C# 调用外部exe,且带参数

Posted nanke_yh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 调用外部exe,且带参数相关的知识,希望对你有一定的参考价值。

 目录

1、引言  

2、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,且带参数 - 简书 (jianshu.com)

以上是关于C# 调用外部exe,且带参数的主要内容,如果未能解决你的问题,请参考以下文章

C#中怎么用process调用一个exe文件并传入参数?

无法使用 C# 代码运行 .exe 应用程序

C#调用Exe程序示例

C#中怎么用process调用一个exe文件并传入参数?

python实现电子邮件附件指定时间段,批量下载以及C#小程序集成实现

C#使用Process类调用外部程序(转)