LANCER PROCESS EXTERNE

4D - Documentation   Français   English   German   Español   4D v11 SQL, Commandes par thèmes   4D v11 SQL, Liste alphabétique des commandes   4D v11 SQL, Constantes par thèmes   Retour   Précédent   Suivant

version 2004


LANCER PROCESS EXTERNE (nomFichier{; fluxEntrée{; fluxSortie{; fluxErreur}}})

ParamètreTypeDescription
nomFichierChaîneChemin d'accès et arguments du fichier à lancer
fluxEntréeChaîne | BLOBFlux d'entrée (stdin)
fluxSortieChaîne | BLOBFlux de sortie (stdout)
fluxErreurChaîne | BLOBFlux d'erreur (stderr)

Attention : Cette commande est destinée aux utilisateurs avancés.

Description

La commande LANCER PROCESS EXTERNE permet de lancer un process externe depuis 4D, sous Mac OS X et Windows.

Sous Mac OS X, cette commande donne accès à toutes les applications exécutables pouvant être lancées depuis le Terminal.

Note : Pour les utilisateurs de 4D Pack, cette commande reprend et étend les possibilités offertes par la commande AP Sublaunch.

Passez dans le paramètre nomFichier le chemin d'accès absolu de l'application à exécuter ainsi que les arguments nécessaires, le cas échéant.

Sous Mac OS X, vous pouvez également passer uniquement le nom de l'application à exécuter, 4D utilisera alors la variable d'environnement PATH pour localiser l'exécutable.

Attention : Cette commande permet uniquement de lancer des applications exécutables, elle ne peut pas exécuter d'instructions dépendantes du shell (l'interpréteur de commandes). Par exemple, sous Mac OS il n'est pas possible d'utiliser cette commande pour exécuter l'instruction echo ou des indirections.

Le paramètre fluxEntrée (facultatif) contient le stdin du process externe. Après l'exécution de la commande, les paramètres fluxSortie et fluxErreur (s'ils sont passés) retournent respectivement le stdout et le stderr du process externe. Vous pouvez utiliser des paramètres de type BLOBs au lieu de chaînes de caractères si vous traitez des données texte de taille supérieure à 32 Ko ou des données binaires (telles que des images).

Note : Si vous utilisez la variable d'environnement _4D_OPTION_BLOCKING_EXTERNAL_PROCESS via la commande FIXER VARIABLE ENVIRONNEMENT (exécution asynchrone), les paramètres fluxSortie et fluxErreur ne sont pas retournés.

Exemples sous Mac OS X

Tous les exemples suivants utilisent le Terminal de Mac OS X, accessible dans le dossier Applications/Utilitaires.

(1) Pour modifier les accès à un fichier (chmod est la commande Mac OS X permettant de modifier les accès des fichiers) :

   LANCER PROCESS EXTERNE ("chmod +x /dossier/monfichier.txt")

(2) Pour éditer un fichier texte (cat est la commande Mac OS X permettant d'éditer les fichiers). Dans cet exemple, le chemin d'accès absolu de la commande est passé :

   C_TEXTE(vtentrée;vtsortie)
   vtentrée:=""
   LANCER PROCESS EXTERNE ("/bin/cat /dossier/monfichier.txt";vtentrée;vtsortie)

(3) Pour récupérer la liste du contenu du dossier "Users" (ls -l est semblable à la commande dir du DOS) :

   C_TEXTE($In;$Out)
   LANCER PROCESS EXTERNE("/bin/ls -l /Users";$In;$Out)

(4) Pour lancer une application "graphique" indépendante, il est préférable d'utiliser la commande système open (dans ce cas l'instruction LANCER PROCESS EXTERNE a le même effet qu'un double-clic sur l'application) : 

   LANCER PROCESS EXTERNE("open /Applications/Calculator.app")

Exemples sous Windows

(5) Pour lancer l'application NotePad :

   LANCER PROCESS EXTERNE ("C:\\WINDOWS\\notepad.exe")

(6) Pour lancer l'application NotePad et ouvrir un document spécifique :

   LANCER PROCESS EXTERNE ("C:\\WINDOWS\\notepad.exe C:\\Docs\\nouveau dossier\\res.txt")

(7) Pour lancer l'application Microsoft® Word® et ouvrir un document spécifique (à noter l'emploi de deux "") :

   $mondoc:="C:\\Program Files\\Microsoft Office\\Office10\\WINWORD.EXE \"C:\\Documents and 
                        Settings\\JeanMarc\\Bureau\\MesDocs\\Nouveau dossier\\essai.xml\""
   LANCER PROCESS EXTERNE($mondoc;$tIn;$tOut)

(8) Pour exécuter un script Perl (requiert l'installation préalable d'ActivePerl) :

   C_TEXTE($entrée;$sortie)
   FIXER VARIABLE ENVIRONNEMENT("mavariable";"valeur")
   LANCER PROCESS EXTERNE ("D:\\Perl\\bin\\perl.exe D:\\Perl\\eg\\cgi\\env.pl";$entrée;$sortie)

(9) Pour lancer une commande avec un répertoire courant défini et sans afficher la console :

   FIXER VARIABLE ENVIRONNEMENT("_4D_OPTION_CURRENT_DIRECTORY";"C:\\4D_VCS")
   FIXER VARIABLE ENVIRONNEMENT("_4D_OPTION_HIDE_CONSOLE";"true")
   LANCER PROCESS EXTERNE("C:\\MesApplis\\macommande.exe")

(10) Pour permettre à l'utilisateur d'ouvrir un document externe sous Windows :

   $nomdoc:=Selectionner document("";"*.*";"Choisissez le fichier à ouvrir";0)
   Si(OK=1)
      FIXER VARIABLE ENVIRONNEMENT("_4D_OPTION_HIDE_CONSOLE";"true")
      LANCER PROCESS EXTERNE("cmd.exe /C start \"\" \""+document+"\"")
   Fin de si

Référence

FIXER VARIABLE ENVIRONNEMENT.

Variables et ensembles système

Si la commande a été exécutée correctement, la variable système OK prend la valeur 1. Sinon (fichier non trouvé, mémoire insuffisante, etc.), elle prend la valeur 0.


4D - Documentation   Français   English   German   Español   4D v11 SQL, Commandes par thèmes   4D v11 SQL, Liste alphabétique des commandes   4D v11 SQL, Constantes par thèmes   Retour   Précédent   Suivant