views:

164

answers:

1

Hi all,

I have the following code snippet to call into command line:

p = new Process();
ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = "cmd.exe";
psi.Arguments = "/C " + "type " + “[abc].pdf”;

psi.UseShellExecute = false;
psi.RedirectStandardInput = false;
psi.RedirectStandardOutput = true;
psi.CreateNoWindow = true;

p.StartInfo = psi;
p.EnableRaisingEvents = true;
p.Exited += new EventHandler(p_Exited);
p.Start();   
p.WaitForExit();

Strangely, When [abc] is a small pdf file(8kb) p_Exited is called. But when it's a large pdf file(120kb) it is never called. Any clues?

Thanks,

A: 

You need to consume the output stream when the standard output has been redirected:

p.Start();   
p.StandardOutput.ReadToEnd();
p.WaitForExit();
Darin Dimitrov