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