/// <summary> /// Permite lanzar una aplicacion. /// </summary> /// <param name="direccionAplicacion">Ubicacion.</param> /// <param name="parametros">Parametros para el lanzamiento.</param> /// <param name="tiempoEspera">Tiempo a esperar por el timeout de la aplicacion.</param> /// <returns>Devuelve el ExitCode, donde cero es Exito.</returns> public static Int32 LanzarAplicacion(String direccionAplicacion, String parametros, Int32 tiempoEspera) { try { var parseado = Cadenas.Parsear(direccionAplicacion, "\\"); var proceso = new Process(); proceso.StartInfo.FileName = parseado.Last(); proceso.StartInfo.Arguments = parametros; proceso.StartInfo.RedirectStandardOutput = false; proceso.StartInfo.UseShellExecute = true; parseado.RemoveAt(parseado.Count - 1); proceso.StartInfo.WorkingDirectory = Cadenas.UnirLista(parseado, "\\"); proceso.Start(); if (tiempoEspera == 0) { tiempoEspera = Int32.MaxValue; } proceso.WaitForExit(tiempoEspera); return(proceso.ExitCode); } catch (Exception ex) { throw new DevCityFrameworkException("No se pudo lanzar la aplicacion, compruebe la excepcion interna.", ex); } }
/// <summary> /// Devuelve un listado de parametros que tiene dentro el proceso lanzado. /// </summary> /// <param name="proceso"></param> /// <returns></returns> public static List <String> ObtenerParametrosInicioAplicacion(Process proceso) { proceso.StartInfo.RedirectStandardOutput = true; proceso.StartInfo.UseShellExecute = false; proceso.StartInfo.CreateNoWindow = true; //var cadena = proceso.StandardOutput.ReadToEnd().ToString(); var cadena = proceso.StartInfo.Arguments; return(Cadenas.Parsear(cadena, " ")); }