C#输入/输出与另一个控制台应用程序

时间:2014-09-12 05:44:09

标签: c# process console-application stdout

我正在尝试构建一个c#程序,它将字符串传递给现有的控制台应用程序,并在完成处理后返回字符串。

以下是我希望它如何工作:

    public void InitializeUtil(List<object> items)
    {
        Process DataValidationUtilitty = new Process();
        DataValidationUtilitty.StartInfo.FileName = Configuration.DVUTIL;
        DataValidationUtilitty.StartInfo.CreateNoWindow = false;
        DataValidationUtilitty.StartInfo.WindowStyle = ProcessWindowStyle.Maximized;
        DataValidationUtilitty.StartInfo.RedirectStandardInput = true;
        DataValidationUtilitty.StartInfo.RedirectStandardOutput = true;
        DataValidationUtilitty.StartInfo.RedirectStandardError = true;
        DataValidationUtilitty.StartInfo.UseShellExecute = false;
        DataValidationUtilitty.OutputDataReceived += new DataReceivedEventHandler(InterProcOutputHandler);
        DataValidationUtilitty.ErrorDataReceived += new DataReceivedEventHandler(InterProcOutputHandler);
        DataValidationUtilitty.Start();

        DataValidationUtilitty.BeginOutputReadLine();

        DataValidationUtilitty.StandardInput.WriteLine(items[0].ToString());
    }

    public void InterProcOutputHandler(object sendingProcess, DataReceivedEventArgs outLine)
    {
        Console.WriteLine(outLine.Data.ToString());
    }

    // And I call
    Program ThisProgram = new Program();
    ThisProgram.InitializeUtil(items);

由于一些显而易见的原因,这不起作用,我不知道为什么。

这是一个有效的例子:

  • 这里有我需要的DLL可执行文件
  • 我在document.json档案
  • 中有一个输入字符串
  • 我有一个运行此可执行文件的.bat文件

File structure

  • 运行程序并将document.json作为输入字符串
  • 传递
  • 暂停执行以查看结果

Bat file contents

  • 找回正确的字符串

Command line results

我在这里缺少什么,我对这个过程有什么不了解?我从dvutils.exe开发人员得到保证,程序确实输入,输出,错误。

0 个答案:

没有答案