PDA

View Full Version : [C#]: Classe Process per eseguire processi


robs05
10-04-2009, 08:43
Salve,

come posso gestire un programma con c#?

questo programma si gestisce da console, si digitano dei comandi e restituisce un output

in c#


Process prog = new Process();
prog.StartInfo.FileName = "path del programma";
prog.StartInfo.Arguments = "argomenti opzionali per l'avvio";
prog.start(); //lancio il programma e fin qui tutto ok



adesso vorrei inviare comandi e leggere l'utput
è possibile?

saluti

Einstein
10-04-2009, 09:46
Dovrebbe bastare eseguire una redirezione dello Standard Output:


prog.StartInfo.UseShellExecute = false;
prog.StartInfo.RedirectStandardOutput = true;
prog.Start();
string output = prog.StandardOutput.ReadToEnd();
prog.WaitForExit();

Maggiori informazioni qui:
http://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.redirectstandardoutput.aspx

robs05
10-04-2009, 09:59
ok grazie mille... invece per inviare comandi?

in effetti quest'appicazione è grads http://www.iges.org/grads/

la eseguo in modalità batch aggiungendo -b alla proprietà arguments

poi fuziona come una shell...

es

ga-> <esegui comnado> es open per aprire i file
ga-> <leggi variabile>
ga-> restituisce un valore

prima di leggerlo il valore dovrei inviare i comandi per averlo...

grazie mille per l'aiuto

Einstein
14-04-2009, 07:44
dovrebbe essere una cosa analoga alla precedente, ma va usato lo standard input al posto dello standard output:

prog.StartInfo.UseShellExecute = False;
prog.StartInfo.RedirectStandardInput = True;
prog.Start();
prog.StandardInput.WriteLine("<comando>");

Maggiori informazioni qui: http://msdn.microsoft.com/en-us/library/system.diagnostics.process.standardinput.aspx