RunProgram()
Syntaxe
Resultat = RunProgram(NomFichier$ [, Parametres$, RepertoireCourant$ [, Options [, SenderProgram]]])Description
Lance un programme externe. Le 'NomFichier$' contient le nom et le chemin de l'exécutable à lancer. 'Parametres$' représente les paramètres à passer au programme lors de son lancement. Le 'RepertoireCourant$' permet de définir le répertoire courant pour le nouveau programme. Si le programme ne peut pas être exécuté, la valeur de 'Resultat' sera 0, sinon 'Resultat' sera différent de zéro.
Le paramètre facultatif 'Options' peut être l'une des combinaisons suivantes:#PB_Program_Wait : Attends 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.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'. 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.
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 'Read', 'Write' ou '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é.
Si l'option #PB_Program_Open est utilisée, 'Resultat' contient le numéro qui identifie le nouveau programme lancé qui peut être utilisé par les commandes mentionnées ci-dessus.
Exemple:
; Execute le compilateur PureBasic avec l'option /? et affiche la sortie (version windows) ; Pour Linux/MacOS changez le paramètre "/?" en "-h" et le "\" en "/" dans le chemin vers le compilateur. ; Compilateur = RunProgram(#PB_Compiler_Home+"\Compilers\pbcompiler", "/?", "", #PB_Program_Open|#PB_Program_Read) Sortie$ = "" If Compilateur While ProgramRunning(Compilateur) Sortie$ + ReadProgramString(Compilateur) + Chr(13) Wend Sortie$ + Chr(13) + Chr(13) Sortie$ + "Code de retour : " + Str(ProgramExitCode(Compilateur)) 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 configuré sur votre système.
OS Supportés
Tous