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

  • Post author:
  • Post category:其他


本周的项目中,有一个定制的对话框,以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对话框,判断对话框程序的返回值进行不同处理。



版权声明:本文为zhouyingge1104原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。