Web应用程序或者WinForm程序 调用 控制台应用程序及参数传递

有时候在项目中,会调用一个控制台应用程序去处理一些工做。
那在咱们的程序中要怎么样作才能调用一个控制台应用程序并将参数传递过去,控制台程序执行完后,咱们的程序又怎样获取返回值?
代码以下:
调用代码:this

            try
            {
                Process pro = new Process();
                //控制台应用程序所在目录
                pro.StartInfo.FileName = @"C:\Users\Administrator\Desktop\WindowsFormsApplication1\ConsoleApplication1\bin\Debug\ConsoleApplication1.exe";
                pro.StartInfo.UseShellExecute = false;
                pro.StartInfo.CreateNoWindow = false//是/否 不显示窗口
                //是否将应用程序的输出写入 System.Diagnostics.Process.StandardOutput 流中。
                //若是设置为true,则能够使用 pro.StandardOutput.ReadLine()来获取cmd 窗口里的输出内容,
                //而且 cmd窗口里不在出现输出。
                pro.StartInfo.RedirectStandardOutput = true;
                //命令行参数,以空格隔开,即 控制台应用程序的Main方法的参数
                pro.StartInfo.Arguments = "123 456";
                pro.Start();
                //显示控制台程序的输出内容
                this.txtConsoleValue.Text += "\r\n" + pro.StandardOutput.ReadLine();
 
                //调用控制台程序的返回值,
                //当控制程序的Main放有返回值时,能够经过 ExitCode 获取
                int result = pro.ExitCode;
 
            }
            catch (Exception)
            {
                throw;
            }

控制台 代码:
        static void Main(string[] args)
        {
            if (args.Length > 0)
            {
                Console.WriteLine("参数1:" + args[0] + "  参数2:" + args[1]);
            }
            //当调用方,将pro.StartInfo.RedirectStandardOutput设置为false时,能够进行输入交互,
            Console.WriteLine("请输入参数:");
            string param = Console.ReadLine();
            Console.WriteLine("您输入的参数为:" + param);
            System.Threading.Thread.Sleep(3000);
        }
相关文章
相关标签/搜索