Exécution d'un Script

Quand vous démarrez AutoIt on vous demandera d'ouvrir un fichier de script. Un fichier de script est un simple fichier texte contenant des mots clé et des fonctions AutoIt qui décrivent à Autoit ce que vous voulez qu'il fasse. Les fichiers scripts sont créés dans un simple éditeur de texte tel que Notepad.exe ou une meilleure alternative dans une version spécialement modifiée de l'éditeur Scite.

Bien que les scripts AutoIt v3 soient de simples fichiers texte, on leur donne habituellement l'extension .au3 pour aider à différencier un fichier script d'un fichier texte. Si vous utilisez l'installation complète de AutoIt vous pouvez exécuter un script AutoIt simplement en double-cliquant dessus. Il existe aussi différentes possibilités pour ouvrir, éditer ou compiler un script si vous cliquez-droit sur le fichier .au3.


Voici un exemple de script. Notez que ; est utilisé pour les commentaires du code :

#include <Constants.au3>

; Voici mon premier script
 MsgBox($MB_SYSTEMMODAL, "Mon premier Script!", "Bonjour à tous!")


Des scripts plus compliqués peuvent utiliser des fonctions, qui sont habituellement placées à la fin du script ou avant la section des déclarations des variables globales.

Voici un script similaire utilisant une fonction :

#include <Constants.au3>

MsgBox($MB_SYSTEMMODAL, "Mon deuxième script!", "Bonjour de mon script principal!")
Example_Func()

Func Example_Func()
   
Return MsgBox($MB_SYSTEMMODAL, "Mon second Script!", "Bonjour de la fonction!")
EndFunc   ;==>Example_Func

Paramètres de Ligne de Commande

Passer des paramètres sur la ligne de commande de votre propre exécutable est facile avec AutoIt. Les paramètres de la ligne de commande peuvent être récupérés dans le code avec les variables $CmdLine and $CmdLineRaw. L'assignation de ces variables avec de nouvelles valeurs provoque une erreur, car elles ne peuvent pas être modifiées pendant l'exécution du script. Notez que ces deux variables existent que les paramètres de la ligne de commande soient passés ou non.

Le tableau spécial $CmdLine est initialisé au démarrage du script avec les paramètres passés sur la ligne de commande de votre script AutoIt. Si vous exécutez votre script au lieu de l'exécutable, alors ScriptName.au3 sera considéré comme n'ayant pas de paramètre.

Si vous passez des chaînes avec des espaces, vous devez les encadrer avec des guillemets sur la ligne de commande.

$CmdLine[0] ; Contient le nombre total d'éléments du tableau.
$CmdLine[1] ; Le premier paramètre.
$CmdLine[2] ; Le deuxième paramètre.
...
$CmdLine[n] ; Le n-ième paramètre c.a.d. 10 si le tableau contient 10 éléments.


Aussi si vous voulez exécuter votre script directement en utilisant AutoIt3.exe :

AutoIt3.exe myScript.au3 param1 "Ceci est un paramètre chaîne" 99

$CmdLine[0] ; Ici il y a 3 paramètres.
$CmdLine[1] ; Contient param1 et pas myScript.au3 qui est ignoré lors d'une exécution non compilée.
$CmdLine[2] ; Le paramètre est ici une chaîne.
$CmdLine[3] ; Contient 99.
$CmdLineRaw ; Contient myScript.au3 param1 "Ceci est un paramètre chaîne" 99.


Si vous souhaitez utiliser l'exécutable compilé en passant les paramètres sur la ligne de commande:

myProg.exe param1 "Ceci est un paramètre chaîne" 99

$CmdLine[0] ; 3 paramètres.
$CmdLine[1] ; param1.
$CmdLine[2] ; paramètre chaîne.
$CmdLine[3] ; 99


Note: Un maximum de 63 paramètres peuvent être stockés dans le tableau $CmdLine[]. Si vous voulez voir la chaîne ligne de commande en entier passée à un exécutable AutoIt, alors utilisez $CmdLineRaw pour voir la chaîne entière de paramètre.

#include <WinAPIShPath.au3>
#include <Array.au3>

; Une alternative à la limitation de $CmdLine[] qui ne peut retourner plus de 63 parameters.
Local $aCmdLine = _WinAPI_CommandLineToArgv($CmdLineRaw)
_ArrayDisplay($aCmdLine)

Commutateurs spécifiques à AutoIt pour la ligne de commande

L'interpréteur AutoIt3.exe, ou le coeur de l'interprèteur de n'importe quel script Autoit compilé, peut normalement être utilisée pour exécuter les scripts AutoIt directement à partir de la ligne de commande. Dans tous les cas le commutateur /ErrorStdOut permet la redirection d'une erreur fatale vers la sortie standard StdOut qui peut ensuite être capturé par une application telle que l'Éditeur SciTE. Ce commutateur peut être utilisé à la fois avec un script interprèté et un compilé.

Exécuter un script avec l'interpréteur

AutoIt3.exe [/ErrorStdOut] [/AutoIt3ExecuteScript] filename [params ...]
                Exécute le script AutoIt3 'filename' avec des paramètres optionnels

Le plus simple: AutoIt3.exe myScript.au3 exécutera le script standard  'myScript.au3' avec aucun paramètre.

Exécuter un script compilé:

Compiled.exe [/ErrorStdOut] [params ...]
                Exécute un script compilé AutoIt3 produit avec Aut2Exe.

Exécute une seule ligne de code:

AutoIt3.exe [/ErrorStdOut] /AutoIt3ExecuteLine "command line"
                Exécute une ligne de code.

La commande suivante exécutera une seule ligne de code et affichera dans une MsgBox le texte "Hello World!". L'icône de la barre des tâches ne sera pas affichée.

Run(@AutoItExe & ' /AutoIt3ExecuteLine "MsgBox(4096, ''Hello World!'', ''Hi!'')"')

Exécute un script en utilisant un autre script compilé:

Compiled.exe [/ErrorStdOut] /AutoIt3ExecuteScript file [params ...]
                Exécute un autre script AutoIt à partir d'un exécutable compilé AutoIt3.

Compiled.exe [/ErrorStdOut] /AutoIt3ExecuteLigne "command line"
                Exécute une seule ligne de code as with AutoIt3.exe above. 

Ceci signifie qu'il y n'y a pas besoin d'embarquer une autre copie de AutoIt3.exe en plus du fichier compilé - le coeur de l'interpréteur d'un fichier compilé le remplacera. Donc, tant que il y a au moins un script compilé disponible, d'autres scripts AutoIt peuvent être exécuté sans la nécessité d'avoir AutoIt3.exe sur la machine, soit pré-installé, soit ajoutée via FileInstall. </ p>

Notes Importantes

Cependant, l'exécutable doit avoir été compilé avec la directive #pragma compile(AutoItExecuteAllowed, True) car le réglage par défaut ne permet pas l'utilisation des paramètres /AutoItExecuteScript ou /AutoItExecuteLine. En outre, étant donné que le coeur de l'interpréteur recherche les fichiers standards requis #include</ em> dans le dossier courant, les fonctions UDF et diverses constantes peuvent ne pas être disponibles dans ces fichiers car ils ne sont normalement trouvés que dans l'installation complète de AutoIt. Il est donc recommandé que tous les scripts destinés à être exécutés de cette manière soient compilés avec le format .a3x plutôt que d'être laissé en fichier de texte brut .au3</ p>   

Le bon usage des guillemets simples et doubles est important lorsque vous utilisez la ligne de commande - tout comme les guillemets simples (apostrophe)