Page 1 sur 1
[R] Mon scrip ne tourne pas en boucle, pourquoi?
Posté : lun. 14 sept. 2015 12:48
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
Re: [..] Mon scrip ne tourne pas en boucle, pourquoi?
Posté : lun. 14 sept. 2015 13:19
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.
Re: [..] Mon scrip ne tourne pas en boucle, pourquoi?
Posté : lun. 14 sept. 2015 13:35
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
Re: [..] Mon scrip ne tourne pas en boucle, pourquoi?
Posté : lun. 14 sept. 2015 13:41
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
Re: [..] Mon scrip ne tourne pas en boucle, pourquoi?
Posté : lun. 14 sept. 2015 14:17
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)
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
Re: [..] Mon scrip ne tourne pas en boucle, pourquoi?
Posté : lun. 14 sept. 2015 21:00
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
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()
Select
Case $msg = $GUI_EVENT_CLOSE
Exit
case $msg = $Bouton1
AdlibRegister ("clique",302000)
case $msg = $Bouton2
AdlibUnRegister ("clique")
EndSelect
WEnd
Func clique()
MouseClick("left", 1231, 601, 1, 5)
sleep(2500)
MouseClick("left", 1232, 611, 1, 5)
sleep(2500)
MouseClick("left", 841, 786, 1, 5)
EndFunc
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.
Re: [..] Mon scrip ne tourne pas en boucle, pourquoi?
Posté : mar. 15 sept. 2015 19:17
par macflyth
Bonsoir,
Cela ne fonctionne toujours pas, lorsque je clique sur start rien ne se passe :/
Re: [..] Mon scrip ne tourne pas en boucle, pourquoi?
Posté : mar. 15 sept. 2015 20:16
par parazitenew
Faut rajouter clique() avant le AdlibRegister()
Voilà:
► Afficher le texte
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()
Select
Case $msg = $GUI_EVENT_CLOSE
Exit
case $msg = $Bouton1
clique()
AdlibRegister ("clique",302000)
case $msg = $Bouton2
AdlibUnRegister ("clique")
EndSelect
WEnd
Func clique()
MouseClick("left", 1231, 601, 1, 5)
sleep(2500)
MouseClick("left", 1232, 611, 1, 5)
sleep(2500)
MouseClick("left", 841, 786, 1, 5)
EndFunc
Re: [R] Mon scrip ne tourne pas en boucle, pourquoi?
Posté : mer. 16 sept. 2015 07:41
par macflyth
Résolut , merci a tous

Re: [..] Mon scrip ne tourne pas en boucle, pourquoi?
Posté : mer. 16 sept. 2015 14:01
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.