====== Manuel Utilisateur ====== //Ce manuel est constitué pour partie de pages éparses rédigées initialement par d'autres contributeurs; qu'ils en soient remerciés ici.// //Ces pages assemblées forment un premier manuel de présentation et d'utilisation des concepts d'Actionaz.// //Dans Actionaz, il est possible d'utiliser un langage de script pour paramétrer ou coder certaines actions. Le langage en question suit la spécification ECMAScript-262 accessible et manipulable par la classe QtScript de la bibliothèque Qt. Le langage Javascript qui suit les mêmes spécifications est très proche de ce langage. Par abus de langage, dans la page qui suit, nous désignons le langage de script mis à disposition dans Actionaz comme Javascript ce qui n'est pas strictement vrai, mais qui en pratique ne fait que peu de différences.// ---- ====== Présentation du logiciel ====== **Actionaz** est un logiciel d'automatisation. Il permet l'exécution de scripts d'actions. Un script est en effet une liste d'actions qui permettent d'interagir avec le système d'exploitation et les applications. Il y a des actions qui déplacent la souris ou effectuent un clic à une coordonnée, des actions qui simulent l'appui sur une touche du clavier, qui lisent la base de registres, qui téléchargent le contenu d'une URL, en tout il y en a plusieurs dizaines. Mais on peut aussi écrire des actions dans un langage similaire au Javascript. Cette possibilité démultiplie les possibilités d'**Actionaz**. ===== Quels usages pour Actionaz ? ===== Dès que vous effectuez des taches répétitives, des requêtes quotidiennes, que vous souhaitez reproduire exactement la même série d'actions, Actionaz peut vous aider. Cela peut être pour programmer un //bot// dans un jeu, déclencher des tests d'une application en développement pour détecter une régression, interroger des applications dépourvues d'interface autre que l'interface homme-machine. ===== Pourquoi choisir Actionaz ? ===== * L'interface conviviale d'Actionaz permet de constituer graphiquement sa liste d'actions sans avoir à apprendre la syntaxe d'un nouveau langage. * Pour une personne qui à déjà une connaissance du Javascript, elle pourra enrichir les actions standard avec du des actions Code exécutant du Javascript ===== Quelques caractéristiques ===== Actionaz est un logiciel libre (sous licence GPL v3) écrit en C++ et s'appuyant sur la bibliothèque Qt. Actionaz est aussi multi plate-forme (windows et linux) ===== Pour les anciens ===== Si vous utilisiez déjà Actionaz 2, voir les [[fr::Actionaz 3 changes|changements qu'apporte Actionaz 3]]. ====== Créons notre premier script ! ====== Après avoir ouvert Actionaz, vous devriez voir cet écran : {{ :fr:ecran_principal.jpg?direct& |}} Il s'agit de la fenêtre principale d'Actionaz. Dans cette fenêtre, vous pouvez créer votre script, l'enregistrer, l'exécuter et avoir accès à toutes les fonctionnalités du programme. Vous pouvez voir qu'à l'ouverture, un nouveau script est automatiquement affiché. Vous pouvez ainsi directement commencer à créer votre script en glissant des actions, situées dans la **//fenêtre nouvelle action//** sur la gauche, vers la fenêtre de script qui se trouve au centre. Commençons progressivement : Tout d'abord, nous allons enregistrer notre script sous le répertoire de votre choix. Pour cela, allez dans "**Fichier -> Enregistrer script sous…**" ou utiliser le raccourci clavier //Ctrl + S//. L’application vous demandera alors de nommer votre script et d’enregistrer dans un répertoire. Appelons-le ici "//premierScript//". Lorsque vous fermerez Actionaz, vous pourrez ainsi récupérer votre script sauvegardé en allant dans "**Fichier -> Ouvrir script **" une fois que vous ré-ouvrirez l'application. ===== Hello World ! ===== Maintenant que le fichier est enregistré, nous allons pouvoir y mettre nos actions. Commençons simplement par mettre une action "Boîte de dialogue", ce qui nous permettra d’afficher un message basique "//Hello World//". Pour cela, sélectionnez l’action "**Boîte de dialogue**" dans la fenêtre de nouvelle action puis glissez-là dans la fenêtre du script. Vous pouvez également double-cliquer dessus afin que l’action s’ajoute directement à la fin de votre script. Une fenêtre devrait s’afficher, contenant les différents paramètres de l’action. Remplissez-là comme dans l’image suivante : {{ :fr:ecran_action_boite_de_dialogue.jpg?direct& |}} Votre boîte de dialogue est constituée des paramètres : * **Message** : le message que vous voulez afficher dans votre boite de dialogue * **Titre** : le titre de votre boite de dialogue * **Icône** : le type d'icône à afficher avec votre boite de dialogue Une fois ceci effectué, validez. à présent votre script doit ressembler à ceci : {{ :fr:11-09-05_21_58_50.jpg?direct& |}} Vous avez à présent un script prêt à l'emploi. Voyons maintenant comment l'exécuter... ===== Testons notre script ===== Vous avez dû remarquer la petite **barre d'outils** juste en dessous du menu principale de l'application. Cette barre vous donne accès aux principales fonctionnalités du programme (éditer une action, la supprimer, la déplacer...), de façon à ce que vous n'ayez pas à aller constamment les chercher dans les menus. Justement, l'une d'elles va nous intéresser : la **fonction d’exécution**. C'est grâce à elle que notre script va pouvoir se lancer. Et pour ce faire, il suffit simplement de cliquer sur ce bouton : {{:fr:execution.png?nolink&|}} Vous devriez voir apparaître le résultat de votre script, et votre premier mot en tant qu'utilisateur d'Actionaz ! {{ :fr:11-09-05_22_03_21.jpg?direct& |}} En plus de votre boîte de dialogue, vous devriez voir apparaître deux autres fenêtres : ==== Panneau de contrôle ==== {{ :fr:11-09-05_22_03_03.jpg?direct& }} Ce panneau contient des boutons permettant d'agir sur l'exécution du script, et notamment : * **Arrêter** : permet de stopper l'exécution du script avant sa fin * **Pause** : permet de mettre en pause l'exécution du script. Un second clic sur le bouton permet de reprendre. Le troisième bouton est réservé à un usage expert de l'application, appelé "Debug". Nous y reviendrons plus tard. Lors de l'exécution d'un script, notez que par défaut la séquence de Touche pour arréter Actionaz est Ctrl+Alt+Q. //[NdA : Vous me remercierez plus tard]// ==== Console ==== {{ :fr:11-09-05_22_03_31.jpg?nolink& }} La console enregistre des informations liées à l'exécution du script. Certains actions permettent d'afficher des informations par ce biais, ce qui permet notamment de savoir si tout ce passe comme prévu ou d'obtenir des données sur le déroulement d'actions qui n'affichent rien à l'écran (par exemple, des actions de manipulation de fichiers). Lorsque vous cliquez sur "OK" dans la boite de dialogue, l'exécution se termine et vous revenez sur la fenêtre principale. Normal, puisque le script ne contient qu'une seule action. Lors de l'exécution d'un script, s'il ne reste aucune action à effectuer, l'exécution se termine. Voilà, vous venez de créer et d'exécuter votre premier script **Actionaz** ! En téléchargeant Actionaz, vous vous êtes peut-être demandé s'il était possible "d'exporter" le script sous forme d'exécutable, ou en d'autres termes dans un fichier qui ne nécessite pas Actionaz pour être lancé. Et bien oui, c'est possible ! (uniquement sous windows) Pour cela, vous pouvez aller dans "Fichier -> Exporter -> Exécutable (SFX)". Vous devrez choisir le nom de l'exécutable ainsi que sa destination. Après, une boite de dialogue apparaîtra avec plusieurs champs, vous permettant de configurer l'exécutable : apparition de la console, de la fenêtre d'exécution, possibilité de laisser Actionaz ouvert etc... Créer un exécutable n'est utile que lorsque vous voulez exporter votre script vers un système ne possédant pas Actionaz. Il s'agit d'une opération lourde et longue, aussi veillez à ne la réaliser que si votre script est achevé car il ne pourra pas être modifié par la suite. Uniquement écrasé. ====== Pour aller plus loin ====== Dans ce premier script nous avons déjà pu voir certains composants essentiels d'Actionaz. Nous allons revenir sur certains d'entre eux. ===== Détail d'une action ===== Un script d'Actionaz est composé d'actions qui sont exécutées séquentiellement. Chaque action possède : * une case à cocher permettant de déactiver l'action * un numéro de ligne ou un label qui permettra de l'identifier * une liste de paramètres * un commentaire (optionnel) Il est également possible de paramétrer une pause avant et après l'action ainsi qu'un temps d'exécution maximum. ==== Numéro de ligne/label ==== {{:line_label.png|}} Le numéro de ligne ou label permet de définir la cible d'un changement de position dans le script. Un label permet de définir un emplacement fixe dans le script, au contraire du numéro de ligne. Pour définir un label, double-cliquez sur la partie gauche de la ligne de l'action. Ne pas entrer de texte supprime le label. Même si un label existe, il est toujours possible d'utiliser le numéro de ligne pour identifier l'action. ==== Liste de paramètres ==== {{:fr:parameters.png|}} === Paramètres d'entrée === Les paramètres d'entrée (fond violet) peuvent être de plusieurs types et peuvent également être vides. Dans ce cas, la valeur par défaut sera utilisée. === Paramètres de sortie === Les paramètres de sortie (fond jaune) vous permettent de récupérer des données après que l'action ait été exécutée. Ces données sont stockées dans des variables dont le nom est la valeur du paramètre de sortie correspondant. === Paramètres communs === {{:fr:common.png|}} Certains paramètres sont communs à toutes les actions : * pause avant : pause à effectuer avant d'exécuter l'action * pause après : pause à effectuer après avoir exécuté l'action * temps d'exécution maximum : temps d'exécution au bout duquel une exception de Délai écoulé est déclenchée ==== Exceptions ==== {{:fr:exceptions.png|}} Les exceptions sont des évènements pouvant être déclenchés durant l'exécution d'une action. Il s'agit le plus souvent d'une erreur dans le paramétrage de l'action. Une exception est également déclenchée lorsque la durée d'exécution maximum d'une action est écoulée. Suivant le paramétrage une exception peut interrompre l'exécution du script, passer l'action courante ou aller à une autre ligne du script. ==== Commentaire ==== Il est également possible d'entrer un commentaire pour aider à identifier ce que fait une action. ==== Couleur ==== Chaque action peut également avoir une couleur de fond. Cela peut permettre d'identifier visuellement des groupes d'actions. Sélectionnez une ou plusieurs action(s) et choisissez "Couleur de l'action" -> "Changer la couleur de l'action" ou pressez Ctrl+E pour modifier la couleur de fond. Consulter la [[fr:actions|liste des actions]] ===== La saisie des paramètres ===== Comme nous venons de le voir une action est configurée par le biais de paramètres. Dans l'action //Boîte de dialogue// il s'agit du texte à afficher et du titre de la fenêtre. Pour l'action //Variable// il s'agira du nom de la variable à affecter, de son type et de la valeur désirée. Pour tous ces paramètres, on peut rentrer une valeur (une chaine pour du texte, des coordonnées pour un Point, un nom de variable pour une variable). Dans les zones attendant du texte on peut introduire un nom de variable précédé du caractère '$', qui sera évalué au moment de l'exécution. On peut aussi pour tous les paramètres saisir du code //Javascript// qui sera évalué pour déterminer la valeur du paramètre. C'est un mécanisme puissant d'Actionaz (voir le prochain paragraphe : [[fr:manual:#le_triangle_rouge|le triangle rouge]]) Le type attendu dans un paramètre n'est pas explicite, mais fortement sous-entendu. un paramètre dénommé //Variable// va attendre un nom de variable, un paramètre dénommé //Texte// sous-entend une chaîne de caractères. Pour désigner une touche dans l'action //Touche// c'est une chaîne de caractères qui va décrire la Touche. Une fois que vous savez quel type de données est attendu pour votre paramètre, vous êtes en mesure de déterminer les mécanismes de substitution qui vous sont proposés. Nous allons voir en détail ce qui se passe dans les 3 cas les plus fréquents. ==== Paramètre de type Texte ==== Dans un champ de ce type, vous pouvez saisir * Une chaîne //simple// : votre Nom est : Dupont * Un nom de variable précéde du caractère //$// : $Nom * Un mélange des deux : votre Nom est : $Nom * Vous pouvez aussi depuis la version **[[fr:changelog#v360|3.6.0]]**, incorporer un élément de tableau.Si le tableau //Présent// est initialisé ainsi : Present[1] = 15 Present[2] = 12 Present[3] = 9 Present[4] = 15 alors on peut écrire : il y a $Present[4] personnes présentes aujourd'hui ou même : il y a $Present[$numeroSalle] élèves présents dans la classe $numeroSalle //Note// : Tout cela était déjà possible avant la version 3.6.0 mais il fallait passer par du code (i.e. activer le petit triangle rouge) Ce principe marche aussi avec des index de tableau non numériques. env['PATH'] = "C:\windows;C:\monRepertoire" env['USERNAME'] = "Fredy123" Dans ce cas on pourra utiliser la chaîne suivante : mon nom d'utilisateur est : $env[USERNAME] //Note// : c'est exactement ce principe qui est utilisé dans l'action de [[fr:actions:actionreadenvironmentvariable|lecture des variables d'environnement]]. ==== Paramètre de type Variable ==== Pour un paramètre de type Variable ce qui est attendu est un nom de variable donc contenant à priori seulement une combinaison de lettres et de chiffres et de '_' sans toutefois pouvoir commencer par un chiffre. En général ce type de champ est utilisé pour affecter un résultat à la variable dénommée (le cas le plus fréquent est celui d'un paramètre de sortie qui est très souvent de //type// nom de variable), ou récupérer le contenu de cette variable (comme dans l'action [[fr:actions:actionvariablecondition|Condition de variable]]) ==== Paramètre de type Position ==== Pour un paramètre de type Position le format est contraint. Il s'agit de deux entiers séparés par un caractère ':'. Par exemple : 101:71. Il n'y a pas pour ce paramètre de possibilité de substitution en dehors de basculer en mode code (petit triangle rouge) et d'inscrire le nom d'une variable de type Point. ===== Le Triangle Rouge ===== {{:fr:parameters.png|}} Visible dans tous les paramètres, ce triangle rouge permet de remplir le champ paramètre à l'aide de code //Javascript// qui sera évalué au moment de l'exécution de l'action. Prenons l'exemple de l'action Console. Utilisons un exemple pour vous montrer l'utilisation possible de code pour remplir les paramètres. {{ :fr:consolewithcode.png |}} En cliquant sur le petit triangle rouge à droite des paramètres nous autorisons la saisie de code //Javascript//. * La première instruction permet de récupérer l'année sur 4 chiffres pour la stocker dans le paramètre //Texte//. * La seconde peut-être plus étonnante, permet de choisir le niveau de message (Information, Avertissement ou Erreur) par l'usage de code également. Dans notre exemple après 15 heures nous affichons un message de type //Avertissement//, et de type //Information// sinon. ===== L'action Code ===== De la même manière qu'un paramètre peut être évalué à l'aide de code //Javascript//, il est possible d'intégrer du code dans une action. Il s'agit de l'action [[fr:actions:actioncode|Code]]. Cette action exécutera le script que vous aurez saisi. Elle permet a des utilisateurs avertis d'étendre les possibilités d'actionaz lorsqu'on se limite à l'utilisation des actions prédéfinies. Vous pouvez aussi inclure du code au moment de l'exécution, pour ce faire il vous suffit d'inclure un fichier contenant le code que vous aurez pu généré à l'action précédente ! Cela se fait par l'instruction include(nomDeFichier) où le fichier inclus contient du code //Javascript//. Mais ce n'est pas tout, Actionaz a enrichi le langage //Javascript// d'objets qui lui sont spécifiques. Ces types d'objet se rajoutent à ceux déjà disponibles dans le langage de base. Par exemple vous avez accès aux objets spécifiques suivant : * Console (vous permet d'interagir avec la Console) * Point (pour manipuler des données de position) * Image (pour prendre des copies d'écran et chercher la présence d'une image dans une autre) L'intégralité de ces objets spécifiques sont décrits dans la partie [[fr:code|code]]. ===== Équivalence entre Actions et Code ===== Cette notion, n'est pas évidente lorsque l'on découvre Actionaz, mais la plupart des actions //graphiques// sont traduisibles en instructions //Javascript//. Pour l'affectation de variables c'est trivial. Pour manipuler la console, on a vu auparavant un exemple, où à l'aide de l'objet Console on pouvait réaliser les mêmes opérations que l'action Console. Tout cela est possible car les actions Actionaz manipulent souvent des objets mis à disposition dans le langage de script. Prenons un peu d'avance sur les versions futures d'Actionaz. Aujourd'hui il existe un objet spécifique dénommé SQL. Il permet de se connecter et de requêter un serveur Sql. Ça marche dès à présent. Maintenant aucune action graphique ne permet de faire une requête SQL, car elle reste à coder ! (Mais cela viendra, soyez patients, ou prenez votre clavier) C'est une autre façon de montrer l'équivalence entre code et actions. ===== Les formats de fichiers ===== Les scripts édités avec Actionaz sont sauvegardés avec l'extension //ascr//. Ce sont des fichiers texte de type XML. Mais il existe un autre format les fichiers //acod// que le binaire //actionaz// ne prend pas directement en charge. Un fichier //acod// est un script écrit en //Javascript//. C'est comme s'il s'agissait d'un script limité à une grosse action Code. Il n'y a pas d'éditeur de fichier //acod//. ===== Actexec ===== Avec **//actionaz//** il y a un autre binaire **//actexec//** qui est limité à l'exécution de script actionaz. Actexec pourra exécuter une script //ascr// ou un fichier //acod//, mais ne permettra pas d'opération d'édition. ====== Pour conclure ====== Il ne reste qu'à vous donner quelques conseils et bonnes adresses : * lire les [[fr:tutorials|tutoriaux]] disponibles * parcourir la [[fr:actions|liste des actions]] * consulter la [[fr:code|liste des objets]] spécifiques à Actionaz que je peux manipuler dans mes actions Code * rester informé sur les nouvelles versions d'Actionaz ([[fr:changelog|changelog]]) * savoir obtenir de l'aide de la communauté ([[http://jmgr.net/forum|le forum Actionaz]]) ---- Retour à la page d'[[fr:start|accueil]]