0

I'm trying to get the output of the C++ console to the C# Windows Form application, the problem I'm having is the output of the C++ exe is displayed in the C# console only after the C++ exe is terminated. Is there anyway to get the exe output to C# console in real time while running the C++ exe (as in without having to terminate the exe)? Here is how I tried,

Process p = new Process(); p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.FileName = "C:\\path\\ABC.exe"; p.Start(); string output = p.StandardOutput.ReadToEnd(); Console.WriteLine(output); 

Thanks,

2 Answers 2

1

Use OutputDataReceived event:

Process p = new Process(); p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.FileName = "C:\\path\\ABC.exe"; p.OutputDataReceived += (s, e) => Console.WriteLine(e.Data); p.Start(); p.BeginOutputReadLine(); 
Sign up to request clarification or add additional context in comments.

2 Comments

Ah, my answer was exactly the same but I was too slow.
Thanks Max, it works fine with OutputDataReceived. Yet performance is quite slow when getting the output to c# console, but that's ok i guess.
0

See Console.SetIn() (and SetOut) and Process.StandardOutput

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.