[R] Sortie de boucle

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
exemptya
Niveau 2
Niveau 2
Messages : 16
Enregistré le : mer. 30 mai 2012 18:59
Status : Hors ligne

[R] Sortie de boucle

#1

Message par exemptya »

Bonjour, bonsoir

Voila, je souhaite faire un programme (déjà écrit) mais il se trouve dans une boucle, automatisation de taches répétitive.
En fait ce que je souhaite c'est que le programme tourne en boucle jusqu’à ce que l'utilisateur fasse quelque chose pour le stopper. Je suis nouveau sur autoit j'espère que je ne pose pas une question trop bête.
Voila j'espère avoir été suffisamment clair sinon n'hésiter pas a me demander ce que je veux réellement ><

Merci
Modifié en dernier par exemptya le jeu. 31 mai 2012 23:28, modifié 2 fois.
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: Sortie de boucle

#2

Message par blacksoul305 »

Commence par éditer ton message et change le titre : [..] Sortie de boucle.
Étudiant en 2ème année de Licence Informatique.
exemptya
Niveau 2
Niveau 2
Messages : 16
Enregistré le : mer. 30 mai 2012 18:59
Status : Hors ligne

Re: Sortie de boucle

#3

Message par exemptya »

Je devrais mettre quoi à la place ?
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: Sortie de boucle

#4

Message par blacksoul305 »

Rajouter la balise [..].

Donc ça donne : [..] Sortie de boucle
Et quand tu auras eu ta réponse : [R] Sortie de boucle.

[..] = En cours de résolution
[R] = Résolu
Modifié en dernier par blacksoul305 le mer. 30 mai 2012 19:30, modifié 1 fois.
Étudiant en 2ème année de Licence Informatique.
exemptya
Niveau 2
Niveau 2
Messages : 16
Enregistré le : mer. 30 mai 2012 18:59
Status : Hors ligne

Re: Sortie de boucle

#5

Message par exemptya »

Ok, pourquoi cette balise ?
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..] Sortie de boucle

#6

Message par blacksoul305 »

Je viens d'éditer mon post. Maintenant que tout est bon, la solution :
► Afficher le texte
Si jamais tu comprends pas, fais-le savoir.

EDIT : Ajout d'une explication dans le code.
Modifié en dernier par blacksoul305 le mer. 30 mai 2012 19:38, modifié 1 fois.
Étudiant en 2ème année de Licence Informatique.
exemptya
Niveau 2
Niveau 2
Messages : 16
Enregistré le : mer. 30 mai 2012 18:59
Status : Hors ligne

Re: [..] Sortie de boucle

#7

Message par exemptya »

Je ne connais pas Tooltip si tu pouvais me donner une brève explication stp
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..] Sortie de boucle

#8

Message par blacksoul305 »

C'est la petite bulle. C'est juste pour te montrer qu'on change de boucle. Elle apparaît en haut à gauche normalement.

EDIT : Bon, j'vais mieux expliquer. C'est tout simplement une bulle que tu peux placer à un endroit sur l'écran a l'aide des coordonnées x et y. Dans mon exemple tu en as une qui est dans la première boucle et qui donc affiche : "Première boucle : ". La variable qui suit montre qu'en fait il y a bien une action qui se fait en même temps.

Quand tu appuies sur ESC (échappe), on quitte la boucle.

Oui j'avais oublié, il faut appuyer sur échap.

EDIT : J'ai ajouté un commentaire dans le code.
Étudiant en 2ème année de Licence Informatique.
exemptya
Niveau 2
Niveau 2
Messages : 16
Enregistré le : mer. 30 mai 2012 18:59
Status : Hors ligne

Re: [..] Sortie de boucle

#9

Message par exemptya »

Code : Tout sélectionner

#include <Misc.au3>

Global $n = 0

While 1 ; première boucle
    ToolTip("Première boucle : " & $n,5,0)
    If _IsPressed("1B") Then ExitLoop ; si on appuie sur la touche "ESC", on quitte la première boucle
Je place mon programme ici ?
    $n += 1
    Sleep(50)
WEnd
Modifié en dernier par exemptya le mer. 30 mai 2012 22:05, modifié 1 fois.
overflow
Niveau 5
Niveau 5
Messages : 138
Enregistré le : sam. 05 déc. 2009 23:49
Status : Hors ligne

Re: [..] Sortie de boucle

#10

Message par overflow »

Si il y a une interface tu peu aussi rajouter un bouton "stop"
Ou te servir d une hotkey
et plein d autre encore

si tu peu poster le code en question tu auras surement des reponses plus ciblé sur ton probleme ;)
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..] Sortie de boucle

#11

Message par blacksoul305 »

Il faudra que tu prennes le temps de lire ça. Donc maintenant tu dois mettre le code dans le message entre les balises

Code : Tout sélectionner

 prévues pour.

Ensuite, non. Là c'était pour te montrer comment sortir d'une boucle et par quel moyen, à savoir avec la commande ExitLoop.

La commande ExitLoop va te permettre de sortir de la boucle, mais pour sortir de la boucle, il faut bien une condition non ? La condition dans mon code c'est d'appuyer sur échap : 

[code=text]If _IsPressed("1B") Then ; si l'utilisateur appuie sur échap
     ExitLoop ; on sort de la boucle
EndIf
EDIT : Pour compléter la réponse d'Overflow, je conseille pas trop les HotKeys car ils ont tendances à monopoliser la touche voulue, et ceux pour quasi le même fonctionnement de ma précédente fonction _IsPressed.

EDIT 2 : Ou alors poster ton code entier comme l'a proposé Overflow. Comme ça on cible directement le problème, on le règle et on t'explique.
Étudiant en 2ème année de Licence Informatique.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Sortie de boucle

#12

Message par mikell »

Aussi, ça peut dépendre de la fréquence de la "tâche répétitive"
Un programme qui tourne dans une boucle While, ça bouffe beaucoup de ressources
Une solution alternative possible :

Code : Tout sélectionner

AdlibRegister("mysoft", 60*1000)   ; lance 1 fois par minute

While 1
  If ... (ce que tu veux).. Then AdlibUnregister("mysoft")
Wend

Func mysoft()
  (la tache répétitive)
EndFunc
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
exemptya
Niveau 2
Niveau 2
Messages : 16
Enregistré le : mer. 30 mai 2012 18:59
Status : Hors ligne

Re: [..] Sortie de boucle

#13

Message par exemptya »

Pardon à ceux qui attendait ma réponse si j'ai été un peu long (recherche d'appart avec sa chérie oblige =) )

donc voila ça c'est ma première idée en gros ouvrir des fichiers excel, allez a la page souhaitée et copier le contenu pour ensuite allez le coller dans l'autre feuille ouverte et ainsi de suite.
► Afficher le texte
Il ne me manque que les coordonnées mais je vais les faire =)
Et donc j'aimerais stopper ce programme quand je veux voila voila
Merci à ceux qui continueront à m'aider, pas facile de débuter !
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..] Sortie de boucle

#14

Message par blacksoul305 »

Salut,

donc dans le code suivant, le script s'arrêtera une fois que tu auras appuyé sur échap.
► Afficher le texte
EDIT : Il est clair que pour commencer, les MouseClick sont plus évidents, mais si tu veux éviter ce processus plutôt carton*, tu peux utiliser les fonctions Exel inclues dans AutoIt !

remarque * : Carton qui veut dire instable. Admettons qu'Exel mette plus du temps à se lancer, tout tes MouseClick cliqueraient n'importe comment. Ton programme est donc moins fiable et très limité.
Étudiant en 2ème année de Licence Informatique.
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Sortie de boucle

#15

Message par jchd »

Exact : il suffit d'un popup d'une appli tierce ("Coucou, j'ai fini le backup !" ou "Chouette, y'a une nouvelle photo sur le réseau social Tartempion") pour que toute ta belle construction parte à dame, avec des conséquences éventuellement destructrices.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..] Sortie de boucle

#16

Message par blacksoul305 »

C'était juste un exemple, pour dire : "Tu peux sortir de ta boucle de cette façon". Son job étant donc de chercher un système pour ce faire si la mienne ne plaît pas, ou de nous demander si il n'y arrive pas.

EDIT : Ah mince, vous parlez de sa construction "MouseClick", j'croyais que mon échap allait poser problème !
Étudiant en 2ème année de Licence Informatique.
exemptya
Niveau 2
Niveau 2
Messages : 16
Enregistré le : mer. 30 mai 2012 18:59
Status : Hors ligne

Re: [..] Sortie de boucle

#17

Message par exemptya »

Bonsoir et merci a tous, je l'ai fait, et j'arrive pas à sortir >< ça tourne en boucle, comment je stop ça ?
Merci
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..] Sortie de boucle

#18

Message par blacksoul305 »

J'ai essayé le code et la touche échap devrait marcher...
Étudiant en 2ème année de Licence Informatique.
exemptya
Niveau 2
Niveau 2
Messages : 16
Enregistré le : mer. 30 mai 2012 18:59
Status : Hors ligne

Re: [..] Sortie de boucle

#19

Message par exemptya »

Bon j'ai stopé ça en coupant le processus >< Bah écoute la touche échap n'a pas fonctionnée avec moi, une idée ?
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..] Sortie de boucle

#20

Message par blacksoul305 »

De toute façon, la commande pour sortir d'une boucle, c'est ExitLoop. Maintenant plusieurs moyens de procéder :
  • Soit on reste dans l'utilisation d'une boucle, et on se penche sur la gestion de celle-ci.
  • Soit on part sur les commandes Adlib, mis mes connaissances sont très limités sur ce sujet.
Donc dans l'hypothèse ou nous partons sur une boucle, il suffit juste de se décider sur comment tu veux sortir de la boucle.
  • A l'appuie d'une touche
  • Système de compteur
  • Système de timer
  • Autre condition
Étudiant en 2ème année de Licence Informatique.
Répondre