Page 1 sur 1

Stopper une boucle, le retour...

Posté : 29 juin 2020, 16:51
par karl56
Bonjour, :D
Je reviens vers vous pour de nouveau exposer mon pb. J'ai une macro pour laquelle j'ai ajouter une fonction pour stopper la boucle avec la touche "s". Cela fonctionne mais en devant appuyer sur la touche "s" trés rapidement une quinzaine de fois pour que cela agisse...
voici ma macro:

Code : Tout sélectionner

Variable	[EVENT.ACTIVATE];1;Numerique;
Variable	[EVENT.KEY];;Alpha;
Boucle	10000000
Type Special	F5;
Move Mouse	2334;251;Direct;ImgRef0;
Click	Left click;
Type Special	Y;[KeyDown];
Click	Left click;
Type Special	Y;[KeyDown];
Type Special	Y;
Type Special	F5;
Examine	[EVENT.KEY];=;s;
Goto	<fin>
Goto	<debutBoucle>
Label	<fin>
Calcul évolué	[EVENT.ACTIVATE]=0
Calcul évolué	[EVENT.KEY]=Touche trouvée=+[EVENT.KEY]
Message	Message;[EVENT.KEY];
Quitter	
Label	<debutBoucle>
Boucle	[FIN]
D'où peu provenir le pb svp?

Re: Stopper une boucle, le retour...

Posté : 30 juin 2020, 02:05
par Onissius
Carrément, 1 million de boucles ?
C'est pas plus simple de faire une boucle infinie ?
Tu n'inclue pas de pause entre chaques commandes ?
Ta boucle dure combien de temps ?
Ton début de boucle est complètement à la fin, c'est normal ?

Re: Stopper une boucle, le retour...

Posté : 30 juin 2020, 16:16
par karl56
Merci de ton retour, :D
Onissius a écrit :
30 juin 2020, 02:05
Carrément, 1 million de boucles ?
C'est pas plus simple de faire une boucle infinie ?
Au départ je faisait des tests avec une boucle infinie, fatigué de devoir faire des "reset" de mon ordi, j'ai choisi les boucles avec une valeur d’arrêt courte. Comme j'étais incapable de stopper la boucle en pressant une touche, j'ai conservé ce type de boucle avec une (trés)grande valeur pour qu'elle tourne longtemps.
Onissius a écrit :
30 juin 2020, 02:05
Tu n'inclue pas de pause entre chaques commandes ?
Non, est ce indispensable? :mrgreen:
Onissius a écrit :
30 juin 2020, 02:05
Ta boucle dure combien de temps ?
Avec cette valeur plusieurs heures, avec la valeur 1, même pas une seconde.
Onissius a écrit :
30 juin 2020, 02:05
Ton début de boucle est complètement à la fin, c'est normal ?
Oui, tu as raison dans le principe le début c'est le début, sauf que si je la place au début, au dessus ou en dessous de la ligne boucle, elle s’exécute sans arrêt...A cette place tout va bien.
Je tiens à préciser que parfois cette macro est capricieuse. :roll:

Re: Stopper une boucle, le retour...

Posté : 30 juin 2020, 20:07
par Onissius
Pour les pauses entre deux commandes, ça permet d’espacé les commandes. Ça laisse le temps à une commande de s’exécuter. Parfois, les commandes s’exécutent trop rapidement et ça fait buguer la macro.

Exemple :
Si je lance un navigateur internet et que j'enchaine derrière des commande, le navigateur n'a pas le temps de se lancer.

Pour vérifier si ça n'est pas ça qui est à l'origine de ton problèmes, crée une variable <Pause> et tu insère entre chaque commande (ou presque) un timer avec comme valeur une variable <Pause>. Tu utilise <Pause> à 500 (millisecondes) pour commencer.

Re: Stopper une boucle, le retour...

Posté : 01 juil. 2020, 11:37
par plvh935
Bonjour,
En fait, tu envoies beaucoup de commandes successives, dans un laps de temps très court. Pour que ta touche "s" soit détectée il faut que tu la rentre entre l'envoi de F5 et l'examine [EVENT.KEY]. D'où le nombre d'essais que tu dois faire. Une temporisation (pause de 1 à 3 secondes par exemple) permettrait de saisir le "s" plus sereinement. Donc, Onissius a raison de te conseiller cette tempo.
Pour ce qui est des boucles (une via le plugin et une par Label/Goto) c'est juste le titre du label qui prête à confusion. Au lieu de "debutBoucle" tu l'aurais intitulé "suiteBoucle" ou "etape2" que cela n'aurais ému personne.
Bon courage.

Re: Stopper une boucle, le retour...

Posté : 05 juil. 2020, 23:15
par karl56
Merci pour vos réponses!
Effectivement, il y a du mieux.