Aller au contenu principal

Des étapes au script

Quand passer à Script​

Les étapes couvrent la plupart des actions. Passez à Script quand vous avez besoin de quelque chose qu'une étape ne peut pas contenir :

  • de l'arithmétique, comme déplacer une fenêtre de 100 pixels par rapport à sa position actuelle ;
  • construire du texte à partir de morceaux, comme un nom de fichier contenant la date du jour ;
  • un appel de fonction intégrée dans le champ d'une autre fonction, sans variable intermédiaire ;
  • une boucle qui utilise son compteur, comme « pour chacune des 5 premières fenêtres ».

Changer de mode ne fait jamais perdre vos étapes : une action conserve côte à côte son contenu Étapes et son contenu Script (Étapes, Script et AutoHotkey).

La vue du code​

remarque

Mode Avancé. Afficher le code, à la fin de l'éditeur d'étapes, affiche les étapes sous forme de texte : la forme sous laquelle elles sont stockées. Masquer le code la masque de nouveau. Elle est masquée au départ chaque fois que vous sélectionnez une autre action.

Masquer le code
Le texte brut des étapes. Les modifications faites ici reconstruisent les lignes d'étapes ci-dessus ; un contenu que les lignes ne peuvent pas afficher ne peut être modifié qu'ici.
[[steps]] id = 1 op = "call" fn = "KeyboardPressKeyCombo" args = ["^W"]
  • Une modification dans la vue du code ② reconstruit les lignes d'étapes au-dessus dès que le texte est valide.
  • Quand le texte ne peut pas être affiché sous forme de lignes, par exemple parce qu'il utilise la forme de si « aller à l'étape », l'éditeur affiche le code sans le lien Afficher le code, puisqu'il est alors le seul moyen de modifier les étapes. Les lignes sont remplacées par un message qui en donne la raison (Problèmes).
  • L'éditeur ne réécrit jamais un texte qu'il ne peut pas afficher sous forme de lignes. Les commentaires du texte ne sont pas conservés une fois que vous modifiez les lignes.

La forme texte elle-même, chaque type d'étape et ses champs, est décrite dans Le moteur Étapes.

Traduire des étapes en script​

  1. Sélectionnez Script sous Rédigée sous forme de.
  2. Si l'action a des étapes et que son contenu Script est vide, Convertir les étapes en script ? demande s'il faut les traduire. Cliquez sur Convertir.
  3. La traduction apparaît dans l'éditeur de script. Vérifiez-la et terminez-la là.

Quand les étapes sont un enregistrement réalisé sur la page Enregistreur, la boîte de dialogue ajoute : Ces étapes sont un enregistrement. En Script, elles ignorent la Vitesse de relecture et la Précision du trajet de la souris en relecture de l'Enregistreur : les attentes s'exécutent à la vitesse enregistrée et chaque mouvement de souris enregistré est rejoué. (Paramètres de relecture)

La traduction est à sens unique. Les étapes restent telles qu'elles étaient, si bien que revenir à Étapes les affiche inchangées, mais rien ne retransforme un script en étapes.

Elle n'est pas proposée quand :

  • le contenu Script contient déjà du texte (il serait écrasé) ;
  • les étapes ne peuvent pas être affichées sous forme de lignes ;
  • une étape est Répéter tant que, Répéter jusqu'à, Sortir de la boucle ou Arrêter les étapes. Script n'a que des boucles qui comptent, et rien qui sorte d'une boucle ou termine l'action plus tôt.

Ce que devient chaque étape​

ÉtapeScript
Une étape de fonction intégréeUne instruction, WindowMaximize(window);
Une étape avec Enregistrer le résultat sousname = Builtin(…);
Définir une variablename = value;
Un $nom dans un chample nom seul, nom
Une lecture comme Fenêtre ciblel'appel, ContextGetWindow()
Une constante nommée comme MouseButton.Primary, hors d'un champ Textele nom tel quel
Du texteune chaîne entre guillemets, avec les barres obliques inverses et les guillemets échappés
Un champ videla valeur vide du type, comme 0 ou ""
Si / Sinon / Fin siif (…) { … } else { … }
Une comparaisona == b et les autres opérateurs ; Inverser le résultat devient !(…)
Répéter un certain nombre de foisune boucle for sur un compteur nommé i (ou i2, etc., si i est pris)

Par exemple, la recette Agrandir ou restaurer devient :

window = ContextGetWindow();
if (WindowIsMaximized(window)) {
WindowRestore(window);
} else {
WindowMaximize(window);
}

Une différence à surveiller : dans les étapes, une variable utilisée avant qu'une étape l'enregistre se lit comme 0. Dans un script, une variable doit être affectée au-dessus de sa première utilisation dans le texte, sinon le script ne se compile pas (Variables).

Enregistrements​

L'enregistreur de macros affiche aussi un enregistrement sous forme d'étapes, avec un bouton Script qui le traduit de la même façon. Un enregistrement conservé sous forme d'étapes suit le paramètre Vitesse de relecture ; un enregistrement traduit se joue tel qu'il a été enregistré.