RunProgram()

Syntaxe

Resultat = RunProgram(Fichier$ [, Parametres$, RepertoireCourant$ [, Options [, programmeEmetteur]]])
Description
Lance un programme externe.

Arguments

Fichier$ Le nom de l'exécutable, y compris son chemin.
Parametres$ (optionnel) Les paramètres de ligne de commande qui seront transmis au programme.
RepertoireCourant$ (optionnel) Le répertoire qui sera alors le répertoire courant pour le programme lancé.
Options (optionnel) Peut être l'une des combinaisons suivantes (en utilisant l'opérateur OR '|'):
  #PB_Program_Wait   : Attend jusqu'à ce que le programme lancé se termine.
  #PB_Program_Hide   : Lance le programme en mode invisible.
  #PB_Program_Open   : Ouvre des canaux de communication entre le programme lancé et le programme PureBasic.
  #PB_Program_Read   : Lecture possible sur la sortie standard (stdout).
  #PB_Program_Write  : Ecriture possible sur l'entrée standard (stdin).
  #PB_Program_Error  : Lecture possible sur la sortie d'erreur(stderr).
  #PB_Program_Connect: Connecte la sortie d'un autre programme à l'entrée du programme PureBasic.
  #PB_Program_Ascii  : Les opérations de lecture/écriture se font en mode ASCII. 
  #PB_Program_Unicode: Les opérations de lecture/écriture se font en mode Unicode.
  #PB_Program_UTF8   : Les opérations de lecture/écriture se font en mode UTF8. (Par défaut)

Un programme exécuté avec l'option #PB_Program_Open doit toujours être fermé avec la commande CloseProgram().
Les options 'Read', 'Write', 'Error' et 'Connect' nécessitent aussi l'option #PB_Program_Open.
ProgrammeEmetteur (optionnel) Quand l'option #PB_Program_Connect est utilisée, un autre programme doit avoir été préalablement lancé avec les options #PB_Program_Open et #PB_Program_Read. Le numéro renvoyé par RunProgram() doit être passé dans le paramètre 'ProgrammeEmetteur'. Toute la sortie du programme émetteur sera envoyée directement dans l'entrée du programme exécuté. Il est possible de chaîner plusieurs programmes de cette manière.

Remarques

Les commandes suivantes peuvent être utilisées lorsque l'option #PB_Program_Open est spécifiée:

- IsProgram(): teste si le numéro réprésente un programme lancé avec RunProgram().
- ProgramID(): renvoie l'identifiant système du programme.
- ProgramRunning(): teste si le programme est toujours en cours d'exécution.
- WaitProgram(): attend la fin du programme.
- KillProgram(): force le programme à quitter.
- ProgramExitCode(): renvoie le code de retour du programme.
- CloseProgram(): ferme les connexions du programme et libère les ressources.

Les commandes suivantes peuvent être utilisées par les programmes lancés avec les options #PB_Program_Read, #PB_Program_Write ou #PB_Program_Error:

- AvailableProgramOutput(): teste si des données sont disponibles.
- ReadProgramString(): lit une ligne à partir de la sortie standard du programme exécuté.
- ReadProgramData(): lit des données binaires à partir de la sortie standard du programme exécuté.
- ReadProgramError(): lit une ligne à partir de la sortie erreur du programme exécuté.
- WriteProgramString(): écrit une ligne sur l'entrée standard du programme exécuté.
- WriteProgramData(): écrit des données binaires sur l'entrée standard du programme exécuté.

Valeur de retour

Renvoie une valeur non nulle si le programme a été lancé avec succès, zéro sinon.

Si l'option #PB_Program_Open est utilisée, 'Resultat' contient le numéro qui identifie le nouveau programme lancé. ReadProgramString() ou ProgramExitCode() ou d'autres fonctions déjà mentionnées peuvent alors être utilisé pour obtenir des informations sur ce nouveau programme.

Exemple

  ; Execute le compilateur PureBasic avec l'option /? et affiche la sortie (version Windows)
  ; Pour Linux/MacOS changez le paramètre "/?" en "-h".
  ;
  Compilateur = RunProgram(#PB_Compiler_Home+"/Compilers/pbcompiler", "/?", "", #PB_Program_Open | #PB_Program_Read)
  Sortie$ = ""
  If Compilateur 
    While ProgramRunning(Compilateur)
      If AvailableProgramOutput(Compilateur)
        Sortie$ + ReadProgramString(Compilateur) + Chr(13)
      EndIf
    Wend
    Sortie$ + Chr(13) + Chr(13)
    Sortie$ + "Code de retour : " + Str(ProgramExitCode(Compilateur))
    
    CloseProgram(Compilateur) ; Ferme la connection vers le programme
  EndIf
  
  MessageRequester("Sortie", Sortie$)
Sous Windows RunProgram() utilise l'application par défaut associée à un type de fichier. Par exemple: RunProgram("Test.html") ouvrira le navigateur par défaut configuré sur votre système.

OS Supportés

Tous

<- RemoveEnvironmentVariable() - Process Index - SetEnvironmentVariable() ->