Functions > Process >


Run

Ex�cute un programme externe.

Run ( "program" [, "workingdir" [, show_flag [, opt_flag]]] )

Param�tres

program Le chemin d'acc�s complet du programme ( EXE, BAT, COM, ou PIF ) � ex�cuter (Voir Remarques).
workingdir [optionnel] Le r�pertoire de travail. Vide ("") pour utiliser le r�pertoire de travail courant. Ce n'est pas le chemin du programme.
show_flag [optionnel] Le flag "affichage" du programme ex�cut�:
    @SW_HIDE = Fen�tre cach�e (ou mot-cl� Default)
    @SW_MINIMIZE = Fen�tre r�duite
    @SW_MAXIMIZE = Fen�tre maximis�e
opt_flag [optionnel] Options diverses li�es � la fa�on dont les processus parent/enfant inter-agissent.
    $STDIN_CHILD (0x1) = Fournit un handle pour le flux STDIN de l'enfant
    $STDOUT_CHILD (0x2)= Fournit un handle pour le flux STDOUT de l'enfant
    $STDERR_CHILD (0x4) = Fournit un handle pour le flux STDERR de l'enfant
    STDERR_MERGED (0x8) = Fournit le m�me handle pour STDOUT et STDERR. Implique � la fois $STDOUT_CHILD et $STDERR_CHILD.
    $STDIO_INHERIT_PARENT (0x10) = Fournit l'enfant avec les flux STDIO du parent. Ce flag ne peut pas �tre jumel� � un autre flag STDIO. Ce flag n'est utile que lorsque le parent est compil� comme une application Console.
    $RUN_CREATE_NEW_CONSOLE (0x10000) = Le processus de la console de l'enfant doit �tre cr�� avec sa propre fen�tre au lieu d'utiliser la fen�tre du parent. Ce flag n'est utile que lorsque le parent est compil� comme une application Console.

Les constantes sont d�finies dans "AutoItConstants.au3".

Valeur de retour

Succ�s: Retourne le PID du processus qui a �t� lanc�.
�chec: Retourne 0 et d�finit @error <> 0.

Remarques

Les chemins qui contiennent des espaces doivent �tre plac�s entre guillemets.

Pour ex�cuter les commandes DOS (console), essayez Run(@ComSpec & " /c " & 'commandName', "", @SW_HIDE) ; ne pas oublier l'espace " " avant "/c"

Apr�s avoir ex�cut� le programme demand� le script continue. Pour mettre en pause l'ex�cution du script jusqu'� ce que le programme soit termin�, utilisez la fonction RunWait() � la place.

Fournir le param�tre Standard I/O avec les valeurs propres permet une interaction avec le processus enfant � travers les fonctions StderrRead(), StdinWrite() et StdoutRead(). Combiner les valeurs des flags (ou utiliser $STDERR_CHILD, $STDIN_CHILD & STDOUT_CHILD, d�finis dans Constants.au3) pour g�rer plus d'un flux.

Pour les flux de fermeture, les conditions suivantes doivent �tre remplies:
1) Le processus enfant a ferm� la fin de son flux (ce qui arrive lorsque l'enfant ferme).
2) AutoIt doit lire tous les flux captur�s jusqu'� il n'y a pas plus de donn�es.
3) Si STDIN est fourni pour l'enfant, StdinWrite() doit �tre appel�e pour fermer le flux. Une fois que tous les flux sont d�tect�s comme n'�tant plus n�cessaires, toutes les ressources internes seront automatiquement lib�r�es.

StdioClose() force le flux STDIO � se fermer.

En relation

ConsoleRead, ProcessClose, RunAs, RunAsWait, RunWait, ShellExecute, ShellExecuteWait, StderrRead, StdinWrite, StdioClose, StdoutRead

Exemple

Example()

Func Example()
    ;Ex�cute le Bloc-notes avec la fen�tre agrandie.
    Local $iPID = Run("notepad.exe", "", @SW_SHOWMAXIMIZED)

    ; Attend 10 secondes pour que la fen�tre du bloc-notes apparaisse.
    WinWait("[CLASS:Notepad]", "", 10)

    ; Attend 2 secondes.
    Sleep(2000)

    ; Ferme le processus Notepad en utilisant le PID retourn� par Run.
    ProcessClose($iPID)
EndFunc   ;==>Example