Stopper une boucle, le retour...

Postez ici si vous avez des difficultés a comprendre une commande, ou a créer une macro.
Répondre
karl56
Messages : 10
Enregistré le : 18 avr. 2020, 09:19

Stopper une boucle, le retour...

Message par karl56 » 29 juin 2020, 16:51

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?

Avatar du membre
Onissius
Messages : 744
Enregistré le : 11 avr. 2014, 22:47
Localisation : Lyon (France)
Contact :

Re: Stopper une boucle, le retour...

Message par Onissius » 30 juin 2020, 02:05

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 ?
J'ai découvert SM en 99, rapidement Adam m'a promu admin.
Posez vos questions aussi clairement que possible, sans fautes qui piquent les yeux et relisez vous.
Vérifiez sur mon DISCORD si je suis en ligne.

karl56
Messages : 10
Enregistré le : 18 avr. 2020, 09:19

Re: Stopper une boucle, le retour...

Message par karl56 » 30 juin 2020, 16:16

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:

Avatar du membre
Onissius
Messages : 744
Enregistré le : 11 avr. 2014, 22:47
Localisation : Lyon (France)
Contact :

Re: Stopper une boucle, le retour...

Message par Onissius » 30 juin 2020, 20:07

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.
J'ai découvert SM en 99, rapidement Adam m'a promu admin.
Posez vos questions aussi clairement que possible, sans fautes qui piquent les yeux et relisez vous.
Vérifiez sur mon DISCORD si je suis en ligne.

plvh935
Messages : 166
Enregistré le : 10 sept. 2014, 22:33

Re: Stopper une boucle, le retour...

Message par plvh935 » 01 juil. 2020, 11:37

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.

karl56
Messages : 10
Enregistré le : 18 avr. 2020, 09:19

Re: Stopper une boucle, le retour...

Message par karl56 » 05 juil. 2020, 23:15

Merci pour vos réponses!
Effectivement, il y a du mieux.

Répondre