Ir al contenido

Open App

Tipo: open-app  ·  Paquete: Desktop Activities v1.0.8  ·  Salida: int

Lanza una aplicación o proceso de Windows. Es habitualmente el primer paso de una automatización de escritorio: abrir el programa que vas a automatizar. Devuelve el PID (identificador de proceso). Opcionalmente puede esperar a que el proceso termine antes de continuar, y entonces devuelve su código de salida.

Ejecuta el programa de path como lo haría Windows al hacer doble clic (por el shell), opcionalmente con argumentos (args) y una carpeta de trabajo (workingDir; por defecto, la carpeta del ejecutable). Por eso path también puede ser un nombre suelto que Windows sepa encontrar (notepad) o un documento, que se abre con su aplicación asociada.

Antes y después de lanzar, la actividad comprueba lo que suele fallar en una sesión de robot, para que el error diga la causa en vez de aparecer más tarde como “no se encontró la ventana”:

  • Antes: si path es una ruta completa (C:\… o \\servidor\…) que no existe, falla de inmediato. Si el programa viene de Internet (marca Mark of the Web), deja un aviso en el registro, porque Windows puede pedir una confirmación que nadie da.
  • Al lanzar: Windows tiene hasta timeout ms para abrirla. Si no devuelve el control (casi siempre un aviso de SmartScreen, UAC o “Abrir archivo - Advertencia de seguridad” esperando un clic), la actividad falla nombrando la causa probable.
  • Después: durante 1 s vigila que la aplicación no se cierre por un error de arranque (falta una DLL, archivo dañado, excepción sin controlar). Si se cierra con otro código, solo lo anota en el registro (lo hacen los lanzadores que delegan en otra ventana).

Por defecto continúa el flujo sin esperar a que la aplicación termine. Con waitForExit = true el flujo se detiene hasta que el proceso termine (útil para herramientas de línea de comandos).

Tras abrir la app, normalmente sigue un Win Attach para conectarse a su ventana.

ParámetroTipoPor defectoDescripción
pathstring—Ruta del ejecutable o comando que se abre. Ej: C:/ERP/erp.exe.
ParámetroTipoPor defectoDescripción
argsstring—Argumentos de línea de comandos.
workingDirstring—Carpeta de trabajo. Vacío = la carpeta del ejecutable.
waitForExitboolfalseEsperar a que el proceso termine antes de seguir.
timeoutint30000Máximo en ms para que Windows abra la aplicación. Vacío = 30000, o el tiempo de espera de interfaz del proyecto si es mayor. Con waitForExit, es además el máximo en ms (desde el lanzamiento) para que termine; vacío o 0 = hasta que termine, dentro de la duración máxima de la ejecución.

Devuelve un int:

  • Con waitForExit = false (por defecto): el PID del proceso lanzado. Úsalo, por ejemplo, para terminar esa instancia con Kill Process.
  • Con waitForExit = true: el código de salida del proceso (normalmente 0 = terminó bien).
MensajeCausa y solución
La aplicación '…' no existe o la cuenta de Windows del robot no la ve. …La ruta no existe para la cuenta del robot (las unidades de red y carpetas de usuario pueden ser otras en una sesión de robot). Usa una ruta UNC o local válida para esa cuenta.
Windows bloqueó la aplicación (SmartScreen): '…' viene de Internet (Mark of the Web) …El ejecutable tiene la marca de Internet. Desbloquéalo (Propiedades › Desbloquear, o Unblock-File en PowerShell) o instálalo desde un origen de confianza.
Windows probablemente bloqueó la aplicación (SmartScreen): '…' no se abrió en … s …SmartScreen está esperando una confirmación. Igual que el anterior, o permítelo en Seguridad de Windows.
'…' pide permisos de administrador (UAC) y un robot no puede confirmar ese aviso. … / Windows pide permisos de administrador (UAC) para abrir '…' …La aplicación exige elevación. Configúrala para que no la pida, o usa una cuenta que ya tenga esos permisos.
Windows no abrió '…' en … s. …Windows no terminó de abrirla en timeout (un aviso de seguridad o la app no responde). Revisa la máquina con la cuenta del robot; si solo es lenta, sube timeout.
La cuenta de Windows del robot no tiene permiso para ejecutar '…'. …Faltan permisos sobre el archivo o su carpeta.
'…' no es una aplicación válida para este Windows (archivo dañado o de otra arquitectura).El ejecutable está dañado o es de otra arquitectura. Reinstala la aplicación.
Windows no tiene una aplicación asociada para abrir '…'.path es un documento sin programa asociado. Indica el ejecutable y pasa el documento en args.
Se canceló la apertura de '…': se rechazó o se cerró un aviso de seguridad de Windows (SmartScreen o UAC).Alguien (o una directiva) rechazó el aviso de seguridad.
'…' se cerró nada más abrir por un error (código 0x…). …La aplicación se cayó al arrancar. Revisa que esté bien instalada, sus argumentos y su carpeta de trabajo.
No se pudo abrir '…': …Otro error de Windows al lanzar; el texto final lo detalla.
No se pudo iniciar el proceso.Windows no creó un proceso nuevo; pasa al abrir un documento o URL que maneja una instancia ya abierta. Si necesitas el PID, abre el ejecutable directamente.
El proceso no terminó en … ms.Con waitForExit, el proceso siguió corriendo más allá de timeout. Súbelo o déjalo vacío.
Open App path = "C:/ERP/erp.exe" → output: pid
Win Attach selector = (ventana "ERP — Login")
└─ body:
... automatizar el ERP ...

Ejecutar una herramienta de línea de comandos y comprobar su resultado:

Open App path = "C:/Herramientas/exportar.exe" args = "/salida \"" + carpeta + "\"" waitForExit = true → output: codigo
If condition = codigo != 0
└─ then:
Throw message = "La exportación terminó con el código " + codigo
  • Win Attach — conectarse a la ventana de la app abierta.
  • Kill Process — terminar la aplicación (por PID o por nombre).
  • Win Close — cerrar la ventana al terminar.