2010-11-23 28 views
9

Duplicar posible:
How to start a process from C#?Cómo iniciar un ejecutable externo de C# y obtener el código de salida cuando el proceso termina

que desea iniciar un ejecutable externo se ejecuta en línea de comandos para hacer alguna tarea. Una vez hecho, quiero verificar el código de error que devuelve. ¿Cómo puedo hacerlo?

+2

@ John, esto no es una réplica que debido a que la otra pregunta no pregunta sobre el código de salida, ni tampoco ninguna de las respuestas demuestran cómo recuperarla. –

+0

Es cierto que el inicio de una aplicación se ha cubierto repetidamente, la captura del valor de retorno no se ha cubierto con tanta frecuencia. No clasificaría esto como un "DUPLICADO DE BLANQUEO" –

+0

@Brad: el título original de la pregunta era "comenzar una pregunta exxcutable externa". El código de salida es la parte más trivial de él. –

Respuesta

16

Prueba esto:

public virtual bool Install(string InstallApp, string InstallArgs) 
    { 
     System.Diagnostics.Process installProcess = new System.Diagnostics.Process(); 
     //settings up parameters for the install process 
     installProcess.StartInfo.FileName = InstallApp; 
     installProcess.StartInfo.Arguments = InstallArgs; 

     installProcess.Start(); 

     installProcess.WaitForExit(); 
     // Check for sucessful completion 
     return (installProcess.ExitCode == 0) ? true : false; 
    } 
1

Puede usar el método Process.Start().

Existen métodos de instancia y estáticos para iniciar el procesamiento, según cómo desee hacerlo.

Puede ver la documentación de MSDN here. Describirá todo lo que necesita para manipular y monitorear un proceso externo iniciado desde C#.

0

Puede utilizar el método estático de Iniciar clase de la clase Process. Por ejemplo, para iniciar Internet Explorer reduce al mínimo, y hacer que se vaya a www.example.com:

ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe", "www.example.com"); 
startInfo.WindowStyle = ProcessWindowStyle.Minimized; 
Process.Start(startInfo); 

En cuanto al valor de retorno, si la operación tiene éxito, el método devolverá true, de lo contrario, un Win32Exception será elevado. Puede verificar el miembro NativeErrorCode de esa clase para obtener el código de error Win32 asociado con ese error específico.

9
 Process process = new Process(); 
     process.StartInfo.FileName = "[program name here]"; 
     process.StartInfo.Arguments = "[arguments here]"; 
     process.StartInfo.WindowStyle = ProcessWindowStyle.Maximized; 
     process.Start(); 
     process.WaitForExit(); 
     int code = process.ExitCode; 
Cuestiones relacionadas