Valide sur les plates-formes NetWare, Symbian OS, UNIX, Windows et Windows CE
La fonction Exec ou Execute renvoie l'application indiquée.
Format de la fonction :
Execute(cmdline as String, wait as Boolean, style as Integer) as Integer
Execute(cmdline as String, wait as Boolean) as Integer
Execute(cmdline as String) as Integer
Identifie la ligne de commande (nom de fichier et paramètres facultatifs).
Remarque : Sur les plates-formes Windows, si le fichier à exécuter ne comporte pas l'extension .exe, vous devez indiquer clairement l'extension de fichier. Par exemple, sous Win9x, saisissez command.com au lieu de command.
Indique si le script attend que l'application soit terminée. (Windows uniquement)
Indique le style de fenêtre de l'application. (Windows uniquement)
Remarque : Si une commande de la ligne de commande contient un espace, insérez-la entre guillemets. Par exemple : Execute("""\temp 1\prgedit.exe""",true,0).
Le paramètre wait indique si la fonction doit renvoyer à l'exécution du script sans attendre la fin de l'application. La valeur True force la fonction à attendre l'arrêt de l'application. La valeur par défaut est : True
Sous UNIX, les paramètres wait et style sont ignorés. La fonction attend toujours que l'application soit arrêtée avant de revenir à l'exécution du script.
Le paramètre style détermine l'affichage de la fenêtre principale d'une application sous Windows. Ce paramètre peut être l'une des valeurs suivantes :
Masque la fenêtre et transmet l'activation à une autre fenêtre.
Active une fenêtre et l'affiche selon sa taille et sa position par défaut. Il s'agit du paramètre par défaut.
Active une fenêtre et l'affiche sous la forme d'une icône.
Active une fenêtre et l'affiche sous la forme d'une fenêtre agrandie.
Affiche une fenêtre sous la forme d'une icône. La fenêtre actuelle demeure active.
Sous Windows, en cas de réussite de la fonction, un code de retour non négatif indique le code de retour de la commande spécifiée, appelée par la fonction execute(). Si l'interpréteur ne parvient pas à lancer la commande, les codes de retour suivants indiquent le problème :
Le système manque de mémoire ou de ressources.
Le fichier spécifié est introuvable.
Le chemin indiqué est introuvable.
Le fichier .exe n'est pas valide.
Erreur inconnue.
Sous UNIX, la fonction système system() appelle la commande spécifiée. Par conséquent, le code renvoyé correspond au code de retour de system(). En d'autres termes, lorsque la fonction system() échoue, elle renvoie -1. Lorsque la fonction system() s'exécute sans erreur, la valeur renvoyée correspond au format de code de retour waitpid(). Un script doit analyser le code de retour afin de déterminer la réussite ou l'échec des commandes appelées. Vous pouvez utiliser pour cela les fonctions suivantes :
' ' Execute() prise en charge de l'évaluation du code de retour pour Unix ' ' ****************************************************************************************************** ' ' Nom ' DMS_ExecExit(retVal As Integer) As Boolean ' ' Description ' Détermine si le processus démarré par Execute() s'est terminé normalement ou non. ' ' Arguments ' retVal code de retour à évaluer ' ' Renvoie ' True en cas de fin normale ' FALSE dans le cas contraire. ' ' Commentaire ' La fonction correspond à la description waitpid(5) de la macro WIFEXITED ' #define WIFEXITED(stat) ((int)((stat)&0xFF) == 0) ' Function DMS_ExecExit(retVal As Integer) As Boolean If (retVal And 255) Then DMS_ExecExit = FALSE Else DMS_ExecExit = True End If End Function ' ****************************************************************************************************** ' ' Nom ' DMS_ExecExitStatus(retVal As Integer) As Integer ' ' Description ' Détermine le code de fin shell à partir de la valeur renvoyée par l'appel de Execute(), c'est-à-dire le code renvoyé par ' le processus appelé. ' ' Arguments ' retVal Code de retour renvoyé par Execute() ' ' Renvoie ' Si la commande Execute() s'est terminée de façon normale, le statut de l'enfant est renvoyé, sinon ' retVal est renvoyé. ' ' Commentaire ' La fonction correspond à la description waitpid(5) de la macro WEXITSTATUS ' #define WEXITSTATUS(stat) ((int)(((stat)>>8)&0xFF)) ' Function DMS_ExecExitStatus(retVal As Integer) As Integer If Not(DMS_ExecExit(retVal)) Then DMS_ExecExitStatus = retVal Else DMS_ExecExitStatus = retVal / 256 DMS_ExecExitStatus = DMS_ExecExitStatus And 255 End If End Function
Si la fonction réussit, la valeur de retour n'est pas négative (le code de sortie de l'application lorsque WAIT indique que la fonction doit attendre l'arrêt de l'application). Dans le cas contraire, la fonction renvoie l'un des numéros d'erreur suivants :
Le système manque de mémoire ou de ressources.
Le fichier spécifié est introuvable.
Le chemin indiqué est introuvable.
Le fichier .exe n'est pas valide.
Erreur inconnue.
Exemple :
Dim Tempname as string ' Contient le nom du fichier temporaire
Dim hFile as integer ' Descripteur du fichier temporaire
' D'abord, obtenez un nom de fichier temporaire, puis créez le fichier...
Tempname=EnvGetString("TEMP")
if TempName="" then
TempName="MonFichier.txt"
else
Tempname=Tempname+"\MonFichier.txt"
end if
hfile=CreateFile(Tempname)
if hFile<0 then
' Une erreur s'est produite lors de la création du fichier. Informez l'utilisateur et quittez l'application.
MsgBox("Impossible de créer le fichier temporaire...")
goto end
end if
' Stockez du texte dans le fichier et fermez-le...
WriteFile(hFile,"Ce texte est affiché à l'aide du Bloc-notes")
WriteFile(hFile,"")
WriteFile(hFile,"Veuillez quitter le Bloc-notes pour reprendre l'exécution du script")
Closefile(hFile)
'Lancez le Bloc-notes avec le fichier...
if Execute("notepad "+Tempname,True)<0 then MsgBox("Impossible de démarrer le Bloc-notes...")
'N'oubliez pas d'effacer le fichier temporaire avant de quitter l'application...
DeleteFile(Tempname)
end:
|
Copyright © 2014 CA Technologies.
Tous droits réservés.
|
|