LAUNCH EXTERNAL PROCESS

4D - Documentation   Français   English   German   Español   English   4D v11 SQL, Comandos por temas   4D v11 SQL, Lista alfabética de comandos   4D v11 SQL, Constantes por temas   Regresar   Anterior   Siguiente

versión 2004


LAUNCH EXTERNAL PROCESS (nomArchivo{; flujoEntrada{; flujoSalida{; flujoError}}})

ParámetroTipoDescripción
nomArchivoCadenaRuta de acceso y argumentos del archivo a abrir
flujoEntradaCadena| BLOBFlujo de entrada(stdin)
flujoSalidaCadena| BLOBFlujo de salida (stdout)
flujoErrorCadena| BLOBFlujo de error(stderr)

Advertencia: Este comando está diseñado para usuarios avanzados.

Descripción

El comando LAUNCH EXTERNAL PROCESS permite iniciar un proceso externo de 4D, bajo Mac OS X y Windows.

Bajo Mac OS X, este comando ofrece acceso a todas las aplicaciones ejecutables que puedan ser iniciadas desde el Terminal.

Nota: Para los usuarios de 4D Pack, este comando recupera y extiende las funcionalidades ofrecidas por el comando AP_Sublaunch.

Pase en el parámetro nomArchivo la ruta de acceso de la aplicación a ejecutar, como también los argumentos requeridos (si es necesario).

Bajo Mac OS X, puede igualmente pasar únicamente el nombre de la aplicación a ejecutar; 4D utilizará entonces la variable del entorno PATH para ubicar el ejecutable.

Advertencia: Este comando sólo puede iniciar aplicaciones ejecutables; no puede ejecutar instrucciones que hagan parte del shell (interprete de comandos). Por ejemplo, bajo Mac OS no es posible utilizar este comando para ejecutar la instrucción echo o las indirecciones.

El parámetro flujoEntrada (opcional) contiene el stdin del proceso externo. Una vez el comando haya sido ejecutado, los parámetro flujoSalida y flujoError (si se pasan) devuelven respectivamente el stdout y el tderr del proceso externo. Puede utilizar los parámetros de tipo BLOB en lugar de las cadenas de caracteres si maneja datos de tipo texto de tamaño superior a 32 KB o datos binarios (como imágenes)._

Nota: Si utiliza la variable del entorno _4D_OPTION_BLOCKING_EXTERNAL_PROCESS vía el comando SET ENVIRONMENT VARIABLE (ejecución asincrónica), los parámetros flujoSalida y flujoError no son devueltos.

Ejemplos bajo Mac OS X

Los siguientes ejemplos utilizan el Terminal Mac OS X, disponible en la carpeta Aplicaciones/Utilidades.

1. Para modificar los accesos a un archivo (chmod es el comando Mac OS X utilizado para modificar el acceso a los archivos):

   LAUNCH EXTERNAL PROCESS ("chmod +x /carpeta/miarchivo.txt")

2. Para editar un archivo de tipo texto (cat es el comando Mac OS X utilizado para editar los archivos). En este ejemplo, se pasa la ruta de acceso completa del comando:

   C_TEXT(entrada;salida)
   entrada:=""
   LAUNCH EXTERNAL PROCESS ("/bin/cat /carpeta/miarchivo.txt";entrada;salida)

3. Para obtener los contenidos de la carpeta "Usuarios" (ls -l es el equivalente Mac OS X del comando dir en DOS):

   C_TEXT($In;$Out)
   LAUNCH EXTERNAL PROCESS("/bin/ls -l /Usuarios";$In;$Out)

4. Para iniciar una aplicación "gráfica" independiente, es preferible utilizar el comando sistema open (en este caso, la instrucción LAUNCH EXTERNAL PROCESS tiene el mismo efecto que hacer doble clic en la aplicación): 

   LAUNCH EXTERNAL PROCESS("abrir/Aplicaciones/Calculadora.app")

Ejemplos bajo Windows


5. Para abrir NotePad:

   LAUNCH EXTERNAL PROCESS ("C:\\WINDOWS\\notepad.exe")

6. Para abrir Notepad y abrir un documento específico:

   LAUNCH EXTERNAL PROCESS ("C:\\WINDOWS\\notepad.exe C:\\Docs\\nueva carpeta\\res.txt")

7. Para iniciar la aplicación Microsoft® Word® y abrir un documento específico (Note el uso de las dos ""):

   $midoc:="C:\\Program Files\\Microsoft Office\\Office10\\WINWORD.EXE \"C:\\Documents and 
                        Settings\\Marcos\\Escritorio\\MisDocs\\Nuevacarpeta\\test.xml\""
   LAUNCH EXTERNAL PROCESS($midoc;$tIn;$tOut)

8. Para ejecutar un script Perl (es necesario ActivePerl):

   C_TEXT($entrada;$salida)
   SET ENVIRONMENT VARIABLE("mivariable";"valor")
   LAUNCH EXTERNAL PROCESS ("D:\\Perl\\bin\\perl.exe D:\\Perl\\eg\\cgi\\env.pl";$entrada;$salida)

9. Para iniciar un comando con el directorio actual y sin mostrar la consola:

   SET ENVIRONMENT VARIABLE("_4D_OPTION_CURRENT_DIRECTORY";"C:\\4D_VCS")
   SET ENVIRONMENT VARIABLE("_4D_OPTION_HIDE_CONSOLE";"true")
   LAUNCH EXTERNAL PROCESS("micomando")

10. Para permitir al usuario abrir un documento externo en Windows:

   $nomdoc:=Select document("";"*.*";"Elija el archivo a abrir";0)
   If(OK=1)
      SET ENVIRONMENT VARIABLE("_4D_OPTION_HIDE_CONSOLE";"true")
      LAUNCH EXTERNAL PROCESS("cmd.exe /Cstart \"\" \""+document+"\"")
   End if

Ver también

SET ENVIRONMENT VARIABLE.

Variables o conjuntos sistema

Si el comando ha sido ejecutado correctamente, la variable sistema OK toma el valor 1. De lo contrario (archivo no encontrado, memoria insuficiente, etc.), toma el valor 0.


4D - Documentation   Français   English   German   Español   English   4D v11 SQL, Comandos por temas   4D v11 SQL, Lista alfabética de comandos   4D v11 SQL, Constantes por temas   Regresar   Anterior   Siguiente