Problèmes signalés par l'éditeur d'étapes
L'éditeur d'étapes vérifie vos étapes pendant que vous les modifiez. Ses messages apparaissent à quatre endroits : sous un champ, sous forme de puce sur la ligne d'une étape, sous forme de Étapes non enregistrées : sous la liste, et à la place de la liste quand les étapes ne peuvent pas être affichées sous forme de lignes.
Sous un champ
Un champ qui pose problème reçoit une bordure rouge et le message en dessous, pendant la frappe. Tant qu'un champ contient un texte tapé qui échoue à sa vérification, les étapes ne sont pas enregistrées : Étapes non enregistrées : l'étape N a un champ non valide s'affiche sous la liste, et l'action conserve ses dernières étapes enregistrées jusqu'à ce que vous corrigiez le champ (Étapes non enregistrées).
Un champ vide n'affiche aucun message et n'empêche pas l'enregistrement ; les étapes sont enregistrées avec le champ vide. Quand l'action s'exécute, une étape dont un champ nombre, vrai ou faux, ou fenêtre est vide arrête l'action à cet endroit, et la sortie Système de la console indique que cet argument a le mauvais type. Un champ Texte vide s'exécute comme un texte vide, ce qui, pour certaines fonctions intégrées (un nom de fichier, un titre de fenêtre à chercher), signifie que l'étape ne fait rien.
| Message | Cause | Solution |
|---|---|---|
| Cette valeur est obligatoire. | Le nom de variable d'une étape Définir une variable est vide. | Tapez un nom. |
| Entrez un nombre entier (décimal ou hexadécimal 0x), une constante nommée ou une $variable. | Un champ nombre entier, ou un Nombre de fois, contient autre chose, comme 2.5 ou dix. | Tapez des chiffres, avec un signe moins facultatif, 0x et un nombre hexadécimal, ou une constante nommée comme VirtualKey.F5 (Paramètres des étapes). |
| Aucune constante nommée ne porte ce nom. Vérifiez l'orthographe et les majuscules, comme dans VirtualKey.MediaPlayPause. | Un champ nombre entier ou nombre, ou un Nombre de fois, contient un nom avec un point, comme VirtualKey.Mediaplaypause, qui n'est pas une constante nommée. | Corrigez le nom. Les majuscules comptent. Les noms sont listés dans Constantes nommées. |
| Entrez un nombre, ou une $variable. | Un champ nombre contient quelque chose qui n'est pas un nombre. | Utilisez un point comme séparateur décimal, sans séparateur de milliers : 1234.5. |
| Entrez true ou false, ou une $variable. | Une valeur Vrai ou faux d'une étape Définir une variable contient autre chose. | Tapez true ou false. |
| Une étape ne peut pas exécuter une fonction intégrée à l'intérieur d'un argument. Placez-la d'abord dans une variable. | Le champ contient un appel de fonction intégrée avec quelque chose entre ses parenthèses, comme WindowGetTitle($w). | Cliquez sur Placer dans une variable sous le champ (Paramètres des étapes). Si ce lien n'est pas proposé, ajoutez vous-même une étape pour l'appel, enregistrez son résultat et utilisez la variable. |
| Utilisez des lettres, des chiffres et _, sans commencer par un chiffre. | Un nom de variable, dans Enregistrer le résultat sous ou Variable, contient un autre caractère ou commence par un chiffre. | Renommez-le (Variables). |
| Ce nom est réservé. Choisissez-en un autre. | Le nom de variable est if, else, for, true ou false. | Choisissez un autre nom. |
| Choisissez la fonction intégrée dont le résultat est vérifié. | Une condition réglée sur Le résultat d'une fonction intégrée n'a pas encore de fonction. | Cliquez sur Choisir une fonction intégrée… et choisissez-en une. |
| « … » ne peut pas être utilisé dans une combinaison de touches. | La case Touches a reçu une touche qu'une combinaison de touches ne peut pas nommer, comme une touche multimédia. | Utilisez une autre touche, ou l'étape Appuyer sur une touche et la relâcher (KeyboardPressKey) (Touches multimédias). |
Placer dans une variable n'est pas proposé quand l'appel ne peut pas être lu (par exemple quand il
contient des opérateurs comme +), ni dans la condition d'un Répéter tant que ou d'un Répéter
jusqu'à.
Une note n'est pas un problème : Ceci est stocké sous forme de texte et n'est pas exécuté. Pour conserver
le résultat d'une fonction intégrée, utilisez Enregistrer le résultat sous dans l'étape de cette
fonction. sous une valeur de type Texte d'une étape Définir une variable qui est un appel de
fonction intégrée avec quelque chose entre ses parenthèses, comme WindowGetTitle($w). La valeur est
enregistrée sous forme de ces caractères. Un appel avec des parenthèses vides, comme ClipboardGetText(),
n'a pas de note : c'est une lecture du menu des valeurs (Variables).
Sur la ligne d'une étape
| Puce | Cause | Solution |
|---|---|---|
| Pas à l'intérieur d'une répétition | Une étape Sortir de la boucle se trouve hors de toute répétition, généralement après un déplacement. L'action ne peut pas s'exécuter tant qu'elle s'y trouve. | Remettez-la dans une répétition, ou supprimez-la (Répéter des étapes). |
Étapes non enregistrées
Étapes non enregistrées : suivi d'une raison signifie que l'éditeur n'a pas pu réécrire vos lignes dans l'action. Tant que vous ne l'avez pas corrigé, l'action conserve ses dernières étapes enregistrées, et le reste de vos modifications attend.
| Raison | Cause | Solution |
|---|---|---|
| aucune fonction intégrée n'est choisie pour une condition | Un Si ou un Répéter tant que/jusqu'à est réglé sur Le résultat d'une fonction intégrée sans fonction. | Choisissez la fonction, ou réglez Vérifier sur un autre type. |
| la value d'une condition est un appel (…) ; il faut d'abord l'affecter à une variable | La Valeur d'une condition, ou un côté d'une comparaison, contient un appel de fonction intégrée avec des arguments. | Ajoutez au-dessus une étape qui exécute l'appel avec Enregistrer le résultat sous, et utilisez la variable dans la condition. |
| l'argument N de fonction est un appel (…) ; il faut d'abord l'affecter à une variable | Un champ d'une étape contient un appel de fonction intégrée avec des arguments. N compte les champs de l'étape à partir de 1. | Placer dans une variable (Paramètres des étapes). |
| l'étape N a un champ non valide | Un champ de l'étape N contient un texte tapé qui échoue à sa vérification (Sous un champ) : abc dans un champ nombre entier ou nombre, un nom qui n'est pas une constante nommée, un champ vrai ou faux avec un autre texte, un Nombre de fois non valide, ou un nom de variable non autorisé. Un champ vide ne le provoque jamais. N compte les étapes à partir de 1. | Corrigez le champ sous lequel se trouve le message. |
Quand les étapes ne peuvent pas être affichées sous forme de liste
Il arrive que des étapes existent sous forme de texte que la liste des étapes ne peut pas afficher : elles ont été modifiées dans la vue du code, importées, ou écrites à la main dans le fichier de configuration. La liste est alors remplacée par :
Ces étapes utilisent un contrôle de flux qui ne peut pas être affiché sous forme de liste (raison). Elles peuvent être modifiées sous forme de code en mode Avancé.
Cela se produit dans tout éditeur d'étapes : celui d'une action, d'un extrait, du Bac à sable, des actions avant et après d'un groupe d'applications, et d'un événement global.
Les étapes s'exécutent toujours telles quelles ; l'éditeur ne peut simplement pas les afficher sous forme de lignes. En mode Avancé, la vue du code affiche le texte, et c'est le seul moyen de le modifier (La vue du code). Dès que le texte retrouve une forme de liste, les lignes reviennent. La forme texte est décrite dans Le moteur Étapes.
La raison est l'une des suivantes. Les mots en italique représentent la partie de votre texte que cite la raison.
Le texte dans son ensemble
| Raison | Ce qu'il faut corriger dans le texte |
|---|---|
| les étapes ne sont pas du TOML valide : message | Le texte n'est pas du TOML valide. Le message indique où. |
| il n'y a pas de tableau [[steps]] | Le texte n'a pas de tables [[steps]]. |
| la clé de premier niveau clé n'est pas une valeur simple | Une clé au-dessus du premier [[steps]] contient une table ou une liste. Seules des valeurs simples peuvent s'y trouver. |
| une étape utilise op op, qui n'a pas de forme de liste | L'op d'une étape est un op que la liste ne peut pas afficher. |
| une étape utilise la forme goto de if, qui n'a pas de forme de liste | Un if saute avec then_goto ou else_goto, ou une étape goto existe. Réécrivez-le avec un bloc if et end_if, ou continuez à modifier sous forme de texte. |
| une étape if n'a pas de condition | Une étape if n'a pas de condition. |
Une étape
| Raison | Ce qu'il faut corriger dans le texte |
|---|---|
| une étape call n'a pas de fn | Une étape call ne nomme aucune fonction intégrée. |
| une étape set n'a pas de local | Une étape set ne nomme aucune variable. |
| le call d'une étape set n'a pas de fn | Le call d'une étape set ne nomme aucune fonction intégrée. |
| la value d'une étape set n'est pas une valeur unique | La value d'une étape set est une liste, ou une table autre qu'une lecture ({ fn = "Name" }) ou une constante nommée ({ const = "Namespace.Name" }). |
| la value d'une étape set est le texte texte, que la liste réenregistrerait comme le résultat de ce builtin | La value d'une étape set est un texte entre guillemets qui se lit comme une lecture, comme "ClipboardGetText()". Pour stocker le résultat de la lecture, écrivez-la { fn = "ClipboardGetText" } ; sinon, modifiez le texte. |
| une étape set n'a ni value ni call | Une étape set n'a rien à stocker. |
| une étape repeat a besoin d'exactement un élément parmi times, while ou until | Une étape repeat n'en a aucun, ou en a plusieurs. |
| le times d'une étape repeat est un nombre, une constante nommée ou un appel de builtin stocké en texte, que la liste réenregistrerait comme nombre, constante ou résultat du builtin | times est écrit entre guillemets, comme "3", "MouseButton.Middle" ou "MouseGetCursorX()". Écrivez un nombre sans guillemets, une constante sous la forme { const = "MouseButton.Middle" }, ou une lecture sous la forme { fn = "MouseGetCursorX" }. |
| le times d'une étape repeat n'est ni un nombre entier ni du texte | times vaut, par exemple, 2.5 ou true. |
| une condition n'est pas une table | Une condition, un while ou un until n'est pas une table. |
| une condition a besoin d'exactement un élément parmi fn, value ou compare | Une condition n'en a aucun, ou en a plusieurs. |
| le not d'une condition n'est ni true ni false | not contient autre chose que true ou false. |
| le fn d'une condition est vide | Le fn d'une condition est un texte vide. |
| le compare d'une condition n'est pas une comparaison prise en charge | compare n'est pas l'un de ==, !=, <, <=, >, >=. |
| une comparaison a besoin de left et de right | Il manque left ou right à une comparaison. |
| un opérande d'une condition n'est pas une valeur unique | Un value, left ou right est une liste, ou une table autre qu'une lecture ou une constante nommée. |
| une condition compare le texte texte, que la liste réenregistrerait comme nombre, constante nommée, true/false ou résultat d'un builtin | Une valeur comparée est écrite entre guillemets mais se lit comme un nombre, une constante nommée, true/false ou une lecture, comme "3", "MouseButton.Left" ou "ClipboardGetText()". La liste ne peut pas la conserver comme texte. Écrivez une lecture sous la forme { fn = "ClipboardGetText" }, ou modifiez le texte. |
| args n'est pas un tableau | Les args d'une étape ne sont pas une liste. |
| un argument n'est pas une valeur unique | Un argument est une liste, ou une table autre qu'une lecture ({ fn = "Name" }) ou une constante nommée ({ const = "Namespace.Name" }). |
| une valeur désigne la constante texte, qui n'existe pas | Un { const = "…" } contient un nom qui n'est pas une constante nommée, ou n'est pas du texte. Corrigez le nom ; les majuscules comptent. |
Des blocs qui ne correspondent pas
N est la position de l'étape, à partir de 1.
| Raison | Ce qu'il faut corriger dans le texte |
|---|---|
| l'étape N est un else hors d'un bloc if | Un else sans if ouvert avant lui. |
| l'étape N est un second else dans un même bloc if | Un bloc if a deux étapes else. |
| l'étape N ferme un bloc qui n'est pas ouvert | Un end_if ou end_repeat sans bloc ouvert correspondant. |
| l'étape N ouvre un bloc qui n'est jamais fermé | Un if ou repeat sans end_if ni end_repeat. |
Notices autour de l'éditeur
| Notice | Signification |
|---|---|
| Rien n'est configuré dans ce mode : son exécution ne fait donc rien. Le contenu mode est conservé, mais n'est pas exécuté. | Rédigée sous forme de est réglé sur un mode vide alors qu'un autre mode a du contenu. Cliquez sur Utiliser mode pour revenir (Étapes, Script et AutoHotkey). |
| La prise en charge d'AutoHotkey est désactivée dans les paramètres généraux : cette action ne fait donc rien tant qu'elle n'est pas activée. | L'action s'exécute comme AutoHotkey, qui est désactivé (AutoHotkey). |
| Aucun plugin enregistré ne fournit le moteur « moteur » : ce script est donc ignoré lors de son exécution. Ajoutez le plugin dans la page Plugins, ou choisissez un autre mode. | L'action s'exécute sur le moteur d'un plugin, et ce plugin n'est pas enregistré (Plugins). |