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 ASCII. 
  #PB_Program_Unicode: Les opérations de lecture/écriture se font en Unicode.
  #PB_Program_UTF8   : Les opérations de lecture/écriture se font en 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.

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'.
ProgrammeEmetteur (optionnel) L'option #PB_Program_Connect est nécessaire, doit contenir le numéro renvoyé d'un autre programme démarré auparavant avec RunProgram() avec les options #PB_Program_Open et #PB_Program_Read.
La sortie du programme émetteur sera envoyée directement à l'entrée du programme maintenant exécuté. Plusieurs programmes peuvent être connectés de cette manière, pour "canaliser" (pipe) les données via ce groupe de programmes connectés.

Remarques

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

- IsProgram(): teste si le numéro repré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

  ; Exécute le compilateur PureBasic avec l'option -h et affiche la sortie
  ;
  Compilateur = RunProgram(#PB_Compiler_Home+"compilers/pbcompiler", "-h", "", #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 connexion 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() ->