Page 1 sur 1

[R] Besoin d'aide pour script pause

Posté : ven. 26 déc. 2008 12:06
par kakashi545
bonjour, alors voila mon problème j'utilise un script qui détecte en boucle une couleur précise et qui va dessus pour y cliquer j'ai réussi a mettre cette fonction: debut du script:

Code : Tout sélectionner

HotKeySet("{Esc}", "Quitter")
fin du script:

Code : Tout sélectionner

Func Quitter()
    Exit 0
EndFunc   ;==>Quitter
alors maintenant mon seule problème est que je n'arrive pas a mettre un fonction pause je vous explique la fonction:j'appuie sur la touche F11 et la le script ce met en pause je peux bouger la souris normalement;Mais apres je voudrais que mon script remarche donc j'appuie a nouveau sur F11 et la le script reprend ces fonction.
seule problème c'est que je n'y arrive pas.

la fonction pause:

Code : Tout sélectionner

HotKeySet("{F11}", "Pause")
HotKeySet("{F11}", "UnPaused")

Func Pause()
    $Paused
    While 
        $Paused
        sleep(999999999)
        ToolTip('Script en "Paused"',0,0)
    WEnd
    ToolTip("")
EndFunc

Func UnPause()
    $UnPaused
    While 
        $UnPaused
        NOT sleep
    WEnd
EndFunc
aider moi svp

Re: besoin d'aide pour script pause

Posté : ven. 26 déc. 2008 15:49
par Tlem
Merci de respecter les règles de présentation d'un message dont voici le lien : http://www.autoitscript.fr/forum/viewto ... f=35&t=595.


Il y à dans votre script deux grosses erreurs.
1 - La fonction HotkeySet ne peut définir qu'une seule fonction par touche.
2 - Vous faites dans votre script une pause de 999999999 ms, ce qui fait que votre script ne peut rien faire d'autre pendent ce temps.

Voici une solution comme une autre qui vous permettrait de gérer une 'pause' :

Code : Tout sélectionner

HotKeySet("{F11}", "Pause")
HotKeySet("{ESC}", "_Exit")

Dim $Paused = 0

While 1
    If $Paused = 1 Then 
        Sleep(50)
    Else
        Beep(100, 500)
        Sleep(1000)
    EndIf
WEnd


Func Pause()
    If $Paused = 1 Then 
        $Paused = 0
    Else
        $Paused = 1
        ToolTip('Script en "Paused"',0,0)
        Sleep(1000)
        ToolTip("")
    EndIf
EndFunc

Func _Exit()
    Exit
EndFunc

Re: besoin d'aide pour script pause

Posté : dim. 28 déc. 2008 12:00
par kakashi545
ok merci et désoler pour les règles mais juste encore un petit truc ton script marche mais je l'ai mis dans le mien et il ne marche pas voila a quoi sa ressemble:

Code : Tout sélectionner

MsgBox(0,"bot paint","salut,ce bot est creer pour detecter une couleur y cliquer dessus")
MsgBox(0,"bot paint","aller sur le logiciel paint et quand cela sera fait cliquer sur ok")
HotKeySet("{F11}", "Pause")
HotKeySet("{ESC}", "_Exit")

$color=0xC76E00

Dim $Paused = 0



     While 1
    $coord=PixelSearch(0,0,@Desktopheight,@DesktopWidth,$color)
    If $Paused = 1 Then
    sleep(50)
    
    Else
    
     If not @error Then
    MouseClick("left",$coord[0],$coord[1], 1, 0.5)
    
    
    If @error Then
    mouseclick("left", 492, 348, 1, 0.5)
    EndIf
    EndIf
    EndIf
    WEnd


Func Pause()
    If $Paused = 1 Then
        $Paused = 0
    Else
        $Paused = 1
        ToolTip('Script en "Pause"',0,0)
        Sleep(1000)
        ToolTip("")
    EndIf
EndFunc

Func _Exit()
    Exit
EndFunc
 

Re: besoin d'aide pour script pause

Posté : dim. 28 déc. 2008 12:58
par Stigmate
J'aurais fait plutot comme sa :wink:
A toi d'analyser se qui n'allais pas.
Ici le programme essaye de trouver une couleur, si il la trouve il clik sur celle si avec le pinceau, si il n'y arrive pas, il clik une fois sur une coordonné que tu a défini, s'est bien cela que tu veut faire ?
Quel est l'interet du clik si il ne trouve pas ?

Code : Tout sélectionner

MsgBox(0,"bot paint","Salut, ce bot est conçu pour détecter une couleur et y cliquer dessus.")
MsgBox(0,"bot paint","Ouvrez le logiciel paint et quand cela sera fait cliquez sur ok")
HotKeySet("{F11}", "Pause")
HotKeySet("{ESC}", "_Exit")

$color=0xC76E00

Dim $Paused = 0



    While 1
    If $Paused = 1 Then
      Sleep (1000)
   
    Else
      $coord=PixelSearch(0,0,@Desktopheight,@DesktopWidth,$color)
      If not @error Then
      MouseClick("left",$coord[0],$coord[1], 1, 0.5)
      Else
       mouseclick("left", 492, 348, 1, 0.5)
       ExitLoop [color=#40BF00]; pour sortir de la boucle sinon tu ne peut plus bouger ta souris car elle est fixé sur tes coordonées[/color]
      EndIf
    EndIf
    WEnd


Func Pause()
    If $Paused = 1 Then
        $Paused = 0
        ToolTip('Script en "Execution"',0,0)
    Else
        $Paused = 1
        ToolTip('Script en "Pause"',0,0)
        Sleep(1000)
        
    EndIf
EndFunc

Func _Exit()
    Exit
EndFunc
 

Re: [..] besoin d'aide pour script pause

Posté : lun. 29 déc. 2008 12:34
par kakashi545
merci beaucoup grâce a toi sa marche

Re: [..] besoin d'aide pour script pause

Posté : lun. 29 déc. 2008 12:56
par Stigmate
Avec plaisir :wink: