[R] Mon scrip ne tourne pas en boucle, pourquoi?

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
macflyth
Niveau 1
Niveau 1
Messages : 5
Enregistré le : lun. 14 sept. 2015 09:59
Status : Hors ligne

[R] Mon scrip ne tourne pas en boucle, pourquoi?

#1

Message par macflyth »

Bonjour a tous,

Je ne connais pas très bien Autoit, je suis plus que débutant et ne trouve pas de réponse (en français).
J'aurais besoin d'un petit coup de main, mon script ne tourne que une seul fois.
J'aimerais qu'il tourne jusqu’à ce que je click sur le bouton stop.
Le bouton stop ferme également la fenêtre, je souhaiterais que elle reste ouverte, est-ce possible?

Il doit répéter l'action toute les 5 minutes...
Pouvez-vous m'aidez svp?

Voici mon script :

Code : Tout sélectionner

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$GUI = GUICreate("GUI", 200, 100, 200, 130)
$Bouton1 = GUICtrlCreateButton("Start", 5, 5, 190, 25)
$Bouton2 = GUICtrlCreateButton("Stop", 5, 35, 190, 25)
GUISetState(@SW_SHOW)

While 1
   $msg = GUIGetMsg()
   Switch $msg
      Case $Bouton1
   MouseClick("left", 1231, 601, 1, 5)
   sleep(2500)
   MouseClick("left", 1232, 611, 1, 5)
   sleep(2500)
   MouseClick("left", 841, 786, 1, 5)
   sleep(302000)
      Case $Bouton2
         Exit
   EndSwitch
WEnd
Modifié en dernier par jguinch le mer. 16 sept. 2015 14:02, modifié 2 fois.
Raison : ajout des balises code
Avatar du membre
TomAijerrie
Niveau 5
Niveau 5
Messages : 192
Enregistré le : lun. 02 juin 2014 09:55
Localisation : Lyon
Status : Hors ligne

Re: [..] Mon scrip ne tourne pas en boucle, pourquoi?

#2

Message par TomAijerrie »

Bonjour,

Premièrement, pense à utiliser les balises [code][/code] pour encadrer ton code.
Que veux tu dire par "tourner en boucle" ?
Il doit se relancer une fois terminé ?

Note que après avoir fait une série de trois clics, ton code fait une pause de 5 minutes et deux secondes,
pendant lesquelles ton programme ne fait rien (il ne regarde pas si l'utilisateur a cliqué sur tel ou tel bouton...)

Quand tu appuis sur le bouton Stop, tu ferme le programme, il est normal que ta fenêtre se ferme.
Quelle doit être l'action quand tu appuis sur ce bouton ?


Quel est l'objectif de ces trois clics ? Il y a peut-être une meilleure solution pour la tempo.
macflyth
Niveau 1
Niveau 1
Messages : 5
Enregistré le : lun. 14 sept. 2015 09:59
Status : Hors ligne

Re: [..] Mon scrip ne tourne pas en boucle, pourquoi?

#3

Message par macflyth »

Bonjour et merci,

Je ne connais pas les balise [ code=text], je suis vraiment débutant (d'hier soir)
Je souhaite que le script reprenne une fois la pause de 5min au début.

La mon script ne reprend pas après les 5 minutes.

J'aimerais que le bouton stop soit un bouton pause, que le script attende que je click sur lancer pour reprendre du début si j'ai clicker sur stop.

Donc en gros

Start

click
click
click

pause 5 min
reprend du début

option pause si je click et reprend au début si je clique start, sinon continue.

Simplement cliquer a l'endroit demander et recommencer une fois le délais atteins.

edit

J'ai tester simplement ceci

Code : Tout sélectionner

while 1
MouseClick("left", 1231, 601, 1, 5)
sleep(2500)
MouseClick("left", 1232, 611, 1, 5)
sleep(2500)
MouseClick("left", 841, 786, 1, 5)
sleep(10000)
Wend
Mais rien ne reprend
Modifié en dernier par TommyDDR le lun. 14 sept. 2015 13:42, modifié 2 fois.
Raison : ajout des balises code
Avatar du membre
TomAijerrie
Niveau 5
Niveau 5
Messages : 192
Enregistré le : lun. 02 juin 2014 09:55
Localisation : Lyon
Status : Hors ligne

Re: [..] Mon scrip ne tourne pas en boucle, pourquoi?

#4

Message par TomAijerrie »

Code : Tout sélectionner

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$GUI = GUICreate("GUI", 200, 100, 200, 130)
$Bouton1 = GUICtrlCreateButton("Start", 5, 5, 190, 25)
$Bouton2 = GUICtrlCreateButton("Stop", 5, 35, 190, 25)
GUISetState(@SW_SHOW)

While 1
   $msg = GUIGetMsg()
   Switch $msg
      Case -3
         Exit
      Case $Bouton1
         While 1
            MouseClick("left", 1231, 601, 1, 5)
            sleep(2500)
            MouseClick("left", 1232, 611, 1, 5)
            sleep(2500)
            MouseClick("left", 841, 786, 1, 5)
            For $i = 1 to 30000
               sleep(10)
               $msg = GUIGetMsg()
               Switch $msg
                  Case -3
                     Exit
                  Case $Bouton1
                     ExitLoop
                  Case $Bouton2
                     ExitLoop 2
               EndSwitch
            Next
         Wend
   EndSwitch
WEnd
La pause sera d'un peu plus que cinq minutes, mais pas de beaucoup
macflyth
Niveau 1
Niveau 1
Messages : 5
Enregistré le : lun. 14 sept. 2015 09:59
Status : Hors ligne

Re: [..] Mon scrip ne tourne pas en boucle, pourquoi?

#5

Message par macflyth »

Merci Tom,

Mais le script ne reprend pas tout seul après 5 minutes :/
Je doit clicker sur start pour qu'il reprenne.

Peux tu m'expliquer se que j'ai fais comme erreur dans mon script svp? (avant ta correction)

Code : Tout sélectionner

For $i = 1 to 30000
il sert a quoi ce code?

Si cela simplifie les choses une simple commande clavier start et stop me convienne parfaitement pour démarrer et arrêter le script

Exemple :

CTRL+7 démarre

CTRL+8 l'arrête
Avatar du membre
parazitenew
Niveau 7
Niveau 7
Messages : 310
Enregistré le : sam. 10 déc. 2011 15:08
Localisation : Algerie
Status : Hors ligne

Re: [..] Mon scrip ne tourne pas en boucle, pourquoi?

#6

Message par parazitenew »

Trêve de bavardage.

La meilleure manière de faire ce genre de script est d'utiliser AdlibRegister() et AdlibUnRegister()

Voici le bon script:
► Afficher le texte
Explication:

AdlibRegister enregistre en "mémoire" une fonction qu'il exécutera à intervalle défini, le AdlibUnRegister quant à lui supprime la fonction de cette "mémoire".

à chaque fois que tu cliqueras sur le bouton "Start", tu lances la fonction, le bouton "Stop" l'arrête jusqu'à ce que tu re-clique sur le bouton "Start" comme tu le voulais.

La fonction est définie en bas du script.
macflyth
Niveau 1
Niveau 1
Messages : 5
Enregistré le : lun. 14 sept. 2015 09:59
Status : Hors ligne

Re: [..] Mon scrip ne tourne pas en boucle, pourquoi?

#7

Message par macflyth »

Bonsoir,

Cela ne fonctionne toujours pas, lorsque je clique sur start rien ne se passe :/
Avatar du membre
parazitenew
Niveau 7
Niveau 7
Messages : 310
Enregistré le : sam. 10 déc. 2011 15:08
Localisation : Algerie
Status : Hors ligne

Re: [..] Mon scrip ne tourne pas en boucle, pourquoi?

#8

Message par parazitenew »

Faut rajouter clique() avant le AdlibRegister()

Voilà:
► Afficher le texte
macflyth
Niveau 1
Niveau 1
Messages : 5
Enregistré le : lun. 14 sept. 2015 09:59
Status : Hors ligne

Re: [R] Mon scrip ne tourne pas en boucle, pourquoi?

#9

Message par macflyth »

Résolut , merci a tous :)
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Mon scrip ne tourne pas en boucle, pourquoi?

#10

Message par jguinch »

@macflyth : la bonne pratique est d'éditer le titre du premier message et remplacer [..] par [R] quand le problème est résolu.
Pour cette fois je le fais, merci de le faire à l'avenir.
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Répondre