欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C#调用exe程序,带参数,处理返回值

程序员文章站 2022-06-10 10:59:53
...

本周的项目中,有一个定制的对话框,以exe文件的形式供另外一个程序调用。

涉及到3个需求:

1. exe程序要能接收参数。

2. exe退出时需要返回一个结果。

3. 调用者需要能把参数传给exe。

经过一番研究,实现了上述功能,记录如下:

1. 让exe文件运行的时候接收参数

给Main函数增加参数string[] args。C#中就是在Program.cs中。

[STAThread]
static void Main(string[] args)
{
   //...  
}

2. exe退出时需要返回一个结果

用Environment.ExitCode。可以为程序设定不通的ExitCode,以供调用者根据返回码进行判断。

//exe程序:
private void yes(object sender, EventArgs e)
{
    if(...){ Environment.ExitCode = 1; }     
    if(...){ Environment.ExitCode = 2; }
    this.Close();
}

3. 调用者需要能把参数传给exe

//调用程序:
string args = "p1 p2";

Process KHMsg = new Process();
KHMsg.StartInfo.FileName = "KHMsgBox.exe";
KHMsg.StartInfo.Arguments = args;
KHMsg.Start();

while (!KHMsg.HasExited) { } //如果exe还没关闭,则等待
if (KHMsg.ExitCode == 2)
{
   //...
}

效果:自定义的类MessageBox对话框,判断对话框程序的返回值进行不同处理。

C#调用exe程序,带参数,处理返回值