2012-06-19 17 views
5

Duplicar posibles:
How to know if Process.Start() is successful?C# - cómo comprobar si un proceso se inició con éxito

Tengo un proceso similar al de un organismo de control (vamos a llamarlo WD) en mi programa que es otro proceso en ejecución (llamémoslo A). Estoy comenzando el proceso WD en un evento determinado, digamos que se presiona una tecla y quiero comenzar otro proceso con este proceso, llamémoslo B.

Lo que pasa es que quiero cerrar el proceso inicial A después de lo que sé que el proceso B se inició correctamente. ¿Cómo puedo verificar eso?

Estoy iniciando el proceso WD y B con Process.Start(argList) y ProcessInfo(argList) sintaxis.

Cada proceso es una simple aplicación de consola C#.

+0

has tryed utilizando try {} catch {}? –

+0

El problema es que la sección de prueba de captura lo ayuda a abrir excepciones. Ya estoy haciendo esto, pero no me da información sobre el tiempo de espera para la apertura de ese proceso. – Simon

Respuesta

4

Process.Start devuelve un valor lógico (verdadero si el proceso se inició correctamente) Marque esta MSDN link para Process.Start() método.

El código debería ser algo como:

 Process B= new Process(); 

     try 
     { 
      B.StartInfo.UseShellExecute = false; 
      B.StartInfo.FileName = "C:\\B.exe"; 
      B.StartInfo.CreateNoWindow = true; 
      if (B.Start()) 
      { 
       // Kill process A 
      } 
      else 
      { 
       // Handle incorrect start of process B and do NOT stop A 
      } 

     } 
     catch (Exception e) 
     { 
      // Handle exception and do NOT stop A 
     } 
0

Process.Start

devuelve: cierto si se inicia un proceso de recursos; false si no se inicia un nuevo recurso de proceso (por ejemplo, si se reutiliza un proceso existente).

Supongo que solo debe comprobar el valor de retorno de Process.Start. Si es true, puede cerrar el proceso actual.

Según la sobrecarga que utilice, el valor de retorno podría ser null si también falla.

Cuestiones relacionadas