Hi,
Im trying to run a command line application from C# but i having some
strange problems with it.
Heres the code im using:
System.Diagnost ics.Process process = new System.Diagnost ics.Process();
procPath = @"c:\ae.bat" ;
//string procArgs = " " + fileName + " " + tempFile;
System.Diagnost ics.ProcessStar tInfo info = new
System.Diagnost ics.ProcessStar tInfo(procPath );
//info.Arguments = procArgs;
info.UseShellEx ecute = false;
info.RedirectSt andardOutput = true;
info.RedirectSt andardInput = true;
info.RedirectSt andardError = true;
info.CreateNoWi ndow = false;
info.WorkingDir ectory = @"c:\";
process.StartIn fo = info;
process.Start() ;
StreamWriter sw = process.Standar dInput;
StreamReader sr = process.Standar dOutput;
StreamReader err = process.Standar dError;
sw.AutoFlush = true;
System.Threadin g.Thread.Sleep( 1000);
sw.WriteLine("V alue1");
sw.WriteLine("V alue2");
sw.Close();
//string ret = sr.ReadToEnd();
//string error = err.ReadToEnd() ;
if(process != null)
{
if(process.HasE xited == false)
process.WaitFor Exit(3000);
if(process.HasE xited == false)
process.Kill();
}
If i run this code to start any command line application they all seem
to work fine apart from the one i need. I need to run the application
with 2 parameters and then pass it more values when it asks for them.
I can see in debug view the test being returned from other
applications but the one im testing with does not return anything to
the debug window. If i run the bat file manually it works perfectly
and prompts me to enter a value but in C# i dont see any messages
coming from the application. I have tried using StreamReader on its
standardoutput but it just hangs.
Anyone have any idea why this would be happening?