Ma macro clique au mauvais endroit : causes et solution
Si votre macro clique là où elle ne devrait pas, c'est presque toujours à cause des coordonnées. Les causes les plus courantes, comment poser le diagnostic et comment éviter qu'elle ne se casse.
Vous avez enregistré une macro, elle a fonctionné du premier coup et, quelques jours plus tard, elle commence à échouer. La souris bouge, mais elle clique à côté du bouton. Si votre macro clique au mauvais endroit, la cause est presque toujours la même : elle répète des coordonnées fixes sur un écran qui n'est plus le même qu'au moment de l'enregistrement. Dans cet article, vous verrez pourquoi cela arrive, comment poser le diagnostic pas à pas et ce que vous pouvez faire pour que votre macro arrête de se casser.
Le symptôme : la macro bouge, mais vise à côté
On reconnaît le problème tout de suite. La macro démarre, le pointeur parcourt l'écran et les clics tombent quelques pixels au-dessus, en dessous ou à côté de l'endroit prévu.
Parfois, c'est pire, car c'est intermittent. Une exécution fonctionne, la suivante échoue et la troisième refonctionne. C'est déroutant, car on a l'impression que la macro « décide » quand viser juste. En réalité, ce qui change, ce n'est pas la macro, mais l'écran sur lequel elle est rejouée.
Pourquoi cela arrive : les coordonnées ne s'adaptent pas
Une macro classique enregistre chaque clic comme un point de l'écran : tant de pixels depuis la gauche et tant depuis le haut. À la lecture, elle clique exactement sur ce point, quoi qu'il y ait dessous.
Cela fonctionne tant que tout reste identique. Cela ne fonctionne plus dès que quelque chose bouge :
- La fenêtre n'a pas la même position ou la même taille. Si elle était agrandie pendant l'enregistrement et qu'elle est maintenant dans un coin, tous les boutons sont ailleurs.
- La résolution ou la mise à l'échelle de l'écran a changé. En passant d'un écran à un autre, ou en modifiant la mise à l'échelle de Windows, les éléments changent de taille et de position.
- La fenêtre se décale un peu à chaque ouverture. Sur un forum de Keyboard Maestro, un utilisateur a découvert que la fenêtre d'un plugin remontait d'environ 20 pixels, à peu près la hauteur d'une barre de titre, chaque fois qu'il l'ouvrait. Ses clics, calculés par rapport à la fenêtre, manquaient toujours leur cible de la même distance.
- Les boutons changent de taille. Un texte plus long, une traduction ou une mise à jour du programme suffit à déplacer un bouton.
- Les listes sont réordonnées. Si l'élément que vous cherchez passe de la troisième à la cinquième ligne, la macro continue de cliquer sur la troisième.
- Les éléments mettent du temps à apparaître. Si la macro clique avant que le bouton ait fini de se charger, elle clique dans le vide.
Comment poser le diagnostic
Avant de changer quoi que ce soit, identifiez ce qui diffère de l'enregistrement. Passez en revue cette liste :
- La fenêtre est-elle à la même position et de la même taille ? Comparez avec son état au moment de l'enregistrement.
- Utilisez-vous le même écran ? Si vous en avez plusieurs, vérifiez sur lequel la fenêtre s'ouvre.
- La résolution et la mise à l'échelle de Windows sont-elles les mêmes ? Vérifiez les paramètres d'affichage.
- L'écran avait-il fini de se charger avant le clic ? Regardez si la macro devance un élément lent.
- Le contenu a-t-il changé ? Une mise à jour, une liste plus longue ou un nouvel avertissement peuvent tout décaler.
Si l'échec est intermittent, faites attention au point 4. Quand une macro vise tantôt juste, tantôt à côté, la cause est généralement le temps de chargement, pas la position.
Solutions générales
Ces solutions fonctionnent avec n'importe quel outil de macros, pas seulement avec un seul :
- Fixez la position et la taille des fenêtres. Ouvrez toujours le programme agrandi ou à la même position avant de lancer la lecture.
- Utilisez toujours le même écran et ne changez pas la mise à l'échelle entre l'enregistrement et la lecture.
- Prévoyez une marge de temps là où les écrans sont lents, pour que le clic n'arrive pas avant le bouton.
- Arrêtez de dépendre uniquement des coordonnées. C'est la vraie solution. Au lieu de cliquer « au point X, Y », la macro devrait chercher l'élément, par son image ou son contexte, et cliquer là où elle le trouve.
Dans le cas du forum de Keyboard Maestro, c'est exactement ce qui a réglé le problème. L'utilisateur a cessé de cliquer par rapport au coin de la fenêtre et s'est mis à cliquer par rapport à une image trouvée à l'écran.
Comment le Mode intelligent résout le problème
Macro Quantic Pro dispose d'une option pensée pour ce problème : le Mode intelligent. Il se trouve dans les options de capture de la section Enregistrement et il est activé par défaut.
Quand vous enregistrez avec le Mode intelligent, le programme garde une petite image de ce qui entoure chaque clic. À la lecture, avant de cliquer, il vérifie si ce qui se trouve à cet endroit ressemble à l'image :
- Si cela correspond, il clique là où vous avez enregistré, sans perdre de temps.
- Si cela ne correspond pas, il cherche autour la zone qui correspond le mieux et corrige le clic vers celle-ci. S'il ne la trouve pas à proximité, il élargit la recherche, par exemple en lisant le texte du bouton et en le cherchant à l'écran.
- Si le bouton n'est pas encore apparu, il réessaie pendant un bref instant avant d'abandonner.
Il couvre ainsi les cas les plus fréquents : une fenêtre qui a bougé, un bouton qui a changé de taille, une liste réordonnée ou un bouton qui met un peu de temps à apparaître. La lecture conserve en plus le rythme exact de l'enregistrement, avec les mêmes pauses entre les actions.
Le Mode intelligent est disponible pendant l'essai gratuit de 7 jours et dans les forfaits Starter, Pro et Enterprise. Le forfait Free ne l'inclut pas : en Free, la macro répète uniquement les coordonnées enregistrées. Vous pouvez comparer les forfaits sur la page des tarifs.
Des limites honnêtes
Aucune méthode ne vise juste à tous les coups, et le Mode intelligent non plus. Mieux vaut savoir quand il peut échouer :
- S'il ne trouve rien qui corresponde suffisamment, il ne prend pas de risque : il clique sur le point enregistré, comme une macro normale.
- Si deux endroits se ressemblent presque à l'identique, par exemple deux lignes quasi identiques d'une liste, il ne choisit pas au hasard non plus. Il laisse le clic là où il a été enregistré.
- Si l'élément change complètement d'apparence, l'image enregistrée ne permet plus de le retrouver.
- Si l'élément met très longtemps à apparaître, la brève attente ne suffit pas. Dans ce cas, mieux vaut prévoir une marge de temps ou découper la macro en plusieurs parties.
C'est pourquoi, même avec le Mode intelligent activé, il reste utile de garder vos fenêtres à un endroit stable. Plus l'écran ressemble à celui de l'enregistrement, plus la macro sera fiable.
Essayez le Mode intelligent
Si vos macros échouent parce que les positions changent, vous pouvez télécharger Macro Quantic Pro gratuitement depuis le Microsoft Store et essayer le Mode intelligent pendant l'essai de 7 jours, sans carte. La page de l'enregistreur de macros résume comment il enregistre et rejoue.
Questions fréquentes
Pourquoi ma macro clique-t-elle ailleurs ?
Parce qu'elle répète les coordonnées enregistrées et que l'écran n'est plus le même. Le plus souvent, la fenêtre a bougé, la résolution ou la mise à l'échelle a changé, ou le bouton n'était pas encore chargé au moment du clic.
Qu'est-ce qui est le mieux, les coordonnées ou la reconnaissance des éléments ?
Les coordonnées sont rapides et suffisent si l'écran ne change jamais. S'il change, il est plus fiable de localiser l'élément avant de cliquer. L'idéal est de combiner les deux : un écran stable et un outil qui vérifie où se trouve le bouton.
La résolution de l'écran affecte-t-elle mes macros ?
Oui. Si vous changez la résolution ou la mise à l'échelle de Windows, les éléments changent de taille et de position. Une macro basée uniquement sur les coordonnées peut alors viser à côté. Le plus sûr est de rejouer avec les mêmes réglages que lors de l'enregistrement.
Comment faire attendre ma macro jusqu'au chargement d'un bouton ?
Ajoutez une marge de temps avant le clic sur les écrans lents. Dans Macro Quantic Pro, le Mode intelligent réessaie pendant un bref instant si le bouton n'est pas encore là. Pour les longues attentes, vous pouvez utiliser un robot OCR qui lance la macro quand un texte précis apparaît.
Sources
- Forum de Keyboard Maestro : Move and click inconsistent when repeating the macro