C# y Execución de Programas .exe

03/01/2008 - 01:06 por Jorge Montenegro | Informe spam
Hola a todos!

Vengo con un problemita :P.

Resulta que estoy haciendo una aplicación en C# con la cual tengo que abrir,
sin que se vea en la pantalla, un programa de linea de comandos hecho en C++
con extensión .exe. Yo se que puedo ejecutarlo con Process.Start(); pero yo
quiero obtener la salida de la aplicación en una variable o matriz o algo así.

Por ejemplo, cuando ejecute el programa "invisiblemente" hacer algo como esto:

string output = ObtenerOutput("path/a/la/aplicacion.exe", "-r -a");

Algo asi...

Ojalá me puedan ayudar.

Atentamente, Jorge Montenegro Gana.
 

Leer las respuestas

#1 Adokin
03/01/2008 - 01:50 | Informe spam
hola, jorge.

Si no he entendido mal tu consulta creo que esto te puede ayudar

//Lanza un proceso con su ventana oculta y devuelve el resultado
private static string lanzaProceso(string Proceso, string Parametros)
{
ProcessStartInfo startInfo = new ProcessStartInfo(Proceso,
Parametros);
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.UseShellExecute = false; //No utiliza RunDLL32 para
lanzarlo
//Redirige las salidas y los errores
startInfo.RedirectStandardOutput = true;
startInfo.RedirectStandardError = true;
Process proc = Process.Start(startInfo); //Ejecuta el proceso
proc.WaitForExit(); // Espera a que termine el proceso
string error = proc.StandardError.ReadToEnd();
if (error != null && error != "") //Error
throw new Exception("Se ha producido un error al ejecutar el
proceso '" + Proceso + "'" +
"Detalles:" +
"Error: " + error);
else //Éxito
return proc.StandardOutput.ReadToEnd(); //Devuelve el resultado
}


Está sacado de campusMVP. Espero que te ayude

Preguntas similares