Hola.
A veces surgen Ideas que pueden ser útiles para resolver determinadas necesidades de nuestras aplicaciones. De vez en cuando puedo compartirlas en el Foro para que no caigan en el olvido. Las podrás identificar con el siguiente logo.
Si necesitas ejecutar una aplicación externa desde vClient ya sabes que puedes usar el comando Lanzar aplicación.
En el ejemplo siguiente ejecutamos una Instancia de Velneo usando la aplicación externa vClient.exe.
El parámetro Esperar hará que no podamos continuar hasta que la aplicación externa haya terminado.
Lanzar aplicación ( Esperar, "\c" + CPATH_VCLIENT + "\c", "vatp://USUARIO:@127.0.0.1/MiAppExterna_iapp", NRESUL )
Ahora imagina que no queremos bloquear la aplicación principal, es decir, disponer de Multitarea y que al mismo tiempo esta aplicación principal no pueda cerrarse hasta que la aplicación externa haya terminado.
Para conseguir la Multitarea lo que haremos es ejecutar la aplicación externa llamando a un proceso PRO_EXE en 2P, que será el que ejecute el comando Lanzar aplicación con el parámetro Esperar.
Rem ( Ejecutar el proceso en 2P para no parar la Aplicación principal )
Ejecutar proceso ( PRO_EXE@Mi_app, 2º plano: Local multitarea (asíncrono), LOK, , )
De esta forma cumplimos los dos requisitos:
- Multitarea. La aplicación principal seguirá funcionando al mismo tiempo que la aplicación externa.
- Finalización condicionada. La aplicación principal no se podrá terminar hasta que la aplicación externa termine ya que el proceso en 2P estará esperando y bloqueando la finalización de aquella.
Pruébalo.
Saludos
Paco satué