Is it possible to run a console application and get its outputted contents back as a string in C#?
I want to be able to use parameters when running the console app:
c:\files\app.exe -a 1 -b 2 -c 3
This isn't the clearest thing I've read today, but I can only assume you're spawning a process (with Process.Start()?) and want to get it's output back into your program.
If so, Process.StandardOutput is probably what you're looking for. For example:
System.Diagnostics.ProcessStartInfo startInfo =
new System.Diagnostics.ProcessStartInfo(@"c:\files\app.exe",@"-a 1 -b 2 -c 3");
startInfo.UseShellExecute = false;
startInfo.RedirectStandardOutput = true;
Process p = Process.Start(startInfo);
string output = p.StandardOutput.ReadToEnd();
p.WaitForExit();
p is running? As in it looks like your CreateNoWindow is applying itself to the current process as well as the one started? Or am I totally misunderstanding?Form.Load event, for example, the process will be started before the form is shown (and act like the behavior you're describing). However, the more I think about it, the more it looks like you're running this code on the same thread as the UI and it's being blocked at p.WaitForExit(). Try putting the above in a BackgroundWorker which reports progress, then use the progress reporting to send messages back to the UI thread.