您的位置:首页 > 其它

程序调用 - 命令参数 和 返回值

2009-03-26 22:04 344 查看
以下是两个程序之前的调用, 主要是由主程序A去调用副程序B, 在B执行完后返回数据给A.

 

副程序B

//被调程序B
static int Main(string[] args)
{
//程序当前工作目录
Console.WriteLine(System.Environment.CurrentDirectory);
if (args != null)
{
for (int i = 0; i < args.Length; i++)
{
Console.WriteLine(string.Format("Number[{0}] value = {1}", i, args[i]));
}
return 2;
}
return 0;
}
  

 

主程序A

 
//主调程序A
static int Main(string[] args)
{
//声明一个程序信息类
System.Diagnostics.ProcessStartInfo Info = new System.Diagnostics.ProcessStartInfo();

//设置外部程序名
Info.FileName = @"C:/程序B.exe";

//设置外部程序的启动参数(命令行参数)为test1 test2
Info.Arguments = "test1 test2";

//设置外部程序工作目录为  C:/
Info.WorkingDirectory = @"C:/";

//不显示外部程序的窗口
Info.CreateNoWindow = true;

//关闭后才可以获取外部程序返回值, 否则有异常
Info.UseShellExecute = false;

//允许获取外部程序返回值
Info.RedirectStandardOutput = true;

//声明一个程序类
System.Diagnostics.Process Proc;

try
{
//启动外部程序
Proc = System.Diagnostics.Process.Start(Info);
}
catch (System.ComponentModel.Win32Exception ex)
{
Console.WriteLine("系统找不到指定的程序文件。/r{0}", ex);
return;
}

//打印出外部程序的开始执行时间
Console.WriteLine("外部程序的开始执行时间:{0}", Proc.StartTime);

//等待3秒钟
Proc.WaitForExit(3000);

//如果这个外部程序没有结束运行则对其强行终止
if (Proc.HasExited == false)
{
Proc.Kill();
Console.WriteLine("由主程序强行终止外部程序的运行!");
}
else
{
Console.WriteLine("由外部程序正常退出!");
}

Console.WriteLine("获取外部程序返回值...");

using (System.IO.StreamReader r = Proc.StandardOutput)
{
Console.WriteLine("--- Begin ---/r/n" + r.ReadToEnd() + "--- End ---");
}

Console.WriteLine("外部程序的结束运行时间:{0}", Proc.ExitTime);
Console.WriteLine("外部程序在结束运行时的返回值:{0}", Proc.ExitCode);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  exception string 工作 null c