title: Not able to get output messages from application when executed from c#
body: <p>I have a executable called background.exe which contains a c program which generates some output to the console window when executed using command prompt.</p>
  
  <p>But now I want to show the output of the background.exe in c# winform application textbox. 
  I created a cmd process and called the background.exe but it does not display output created by the c program in the textbox. If I input commands like "Dir" then output is displayed. Please help.</p>
  
  <pre><code>      Process cmdProcess;
        StreamWriter cmdStreamWriter;
  
        cmdOutput = new StringBuilder("");
        cmdProcess = new Process();
  
  
        cmdProcess.StartInfo.FileName = "cmd.exe";
        cmdProcess.StartInfo.UseShellExecute = false;
        cmdProcess.StartInfo.CreateNoWindow = true;
        cmdProcess.StartInfo.RedirectStandardOutput = true;
  
        cmdProcess.OutputDataReceived += new DataReceivedEventHandler(SortOutputHandler);
        cmdProcess.StartInfo.RedirectStandardInput = true;
        cmdProcess.Start();
  
  
        cmdStreamWriter = cmdProcess.StandardInput;
  
        cmdProcess.BeginOutputReadLine();
  
  
        cmdStreamWriter.WriteLine("start background.exe");
  
  
    }
  
    delegate void SetTextCallback(string text);
  
    private void SetText(string text)
    {
        // InvokeRequired required compares the thread ID of the
        // calling thread to the thread ID of the creating thread.
        // If these threads are different, it returns true.
        if (this.textBox1.InvokeRequired)
        {
            SetTextCallback d = new SetTextCallback(SetText);
            this.Invoke(d, new object[] { text });
        }
        else
        {
            this.textBox1.Text = text;
        }
    }
  
    private  void SortOutputHandler(object sendingProcess,
          DataReceivedEventArgs outLine)
      {
          if (!String.IsNullOrEmpty(outLine.Data))
          {
              cmdOutput.Append(Environment.NewLine + outLine.Data);
              SetText(cmdOutput.ToString());
  
          }
      }
  </code></pre>