{Autoit} stopper un Send et le relancer


Statut
La discussion n'est pas ouverte à d'autres réponses

Turki1923

Membre
13 Avr. 2013
12
0
201
Bonsoir,

J'ai fait un script pour un jeu mais j'ai un problème, voici mon code :

Code:
Send("{k down}") 
Sleep(70) 
Send("{k up}") 
$anti_kick = 0 



While 1 
    
   


   $couleur_pixel = Pixelgetcolor (24,411) 
   $anti_kick = $anti_kick+1 

   If $couleur_pixel = 0xCEEBFF Then 
;;;Ce que vous voulez;;; 

Send("{s up}") 
Sleep(100) 
Send("{a down}") 
Sleep(300) 
Send("{a up}") 



$anti_kick = 0 


Else  
   If $anti_kick == 6000 Then 
   Send("{s up}") 
   Sleep(300) 
   Send("{k down}") 
   Sleep(500) 
   Send("{k up}") 
   Sleep(50) 
   Send("{d down}") 
   Sleep(50) 
   Send("{m down}") 
   Sleep(600) 
   Send("{m up}") 
   Send("{d up}") 
    
   $anti_kick = 0 
   Endif 
EndIf 

Send("{s down}") 
WEnd
Ce que je voudrais faire C'est de stopper le "Send("{s down}") lorsque je clique sur une touche du clavier et le relancer avec une autre touche.

Merci d'avance pour vos réponses
 

Cyrion

._.
Programmeur
Ancien staff
8 Juil. 2010
2,525
2
944
www.bufferoverflow.fr
Je ferais un truc du genre

Code:
HotKeySet("{F1}","Stop")
Global $Stop = False

Send("{k down}") 
Sleep(70) 
Send("{k up}") 
$anti_kick = 0 



While 1 
    
   


   $couleur_pixel = Pixelgetcolor (24,411) 
   $anti_kick = $anti_kick+1 

   If $couleur_pixel = 0xCEEBFF Then 
;;;Ce que vous voulez;;; 


Send("{s up}") 
Sleep(100) 
Send("{a down}") 
Sleep(300) 
Send("{a up}") 



$anti_kick = 0 


Else  
   If $anti_kick == 6000 Then 
   Send("{s up}") 
   Sleep(300) 
   Send("{k down}") 
   Sleep(500) 
   Send("{k up}") 
   Sleep(50) 
   Send("{d down}") 
   Sleep(50) 
   Send("{m down}") 
   Sleep(600) 
   Send("{m up}") 
   Send("{d up}") 
    
   $anti_kick = 0 
   Endif 
EndIf 

if(NOT $Stop) Then
Send("{s down}") 

WEnd

Func Stop
  $Stop = NOT $Stop
EndFunc
 

Turki1923

Membre
13 Avr. 2013
12
0
201
Merci d'avoir répondu, mais sa m'affiche une erreur.

l'erreur :

>"C:\Program Files\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "Z:\home\kargin\Bureau\script.au3"
Z:\home\kargin\Bureau\script.au3 (87) : ==> "While" statement has no matching "Wend" statement.:
Func $Stop

>Exit code: 1 Time: 0.641



Voici mon code complet :


Send("Login{tab}motdepasse{enter}")
Sleep(2000)



HotKeySet("{F1}","Stop")
Global $Stop = False

Send("{k down}")
Sleep(70)
Send("{k up}")
$anti_kick = 0



While 1




$couleur_pixel = Pixelgetcolor (24,411)
$anti_kick = $anti_kick+1

If $couleur_pixel = 0xCEEBFF Then
;;;Ce que vous voulez;;;


Send("{s up}")
Sleep(100)
Send("{a down}")
Sleep(300)
Send("{a up}")



$anti_kick = 0


Else
If $anti_kick == 6000 Then
Send("{s up}")
Sleep(300)
Send("{k down}")
Sleep(500)
Send("{k up}")
Sleep(50)
Send("{d down}")
Sleep(50)
Send("{m down}")
Sleep(600)
Send("{m up}")
Send("{d up}")

$anti_kick = 0
Endif
EndIf

if(NOT $Stop) Then
Send("{s down}")
EndIf
Wend

Func $Stop
$Stop = NOT $Stop
EndFunc
 
Dernière édition:

Turki1923

Membre
13 Avr. 2013
12
0
201
Je ne pense pas que ce soit le problème car sans ton code sa marche. (Sinon j'ai essayé aussi d'enlever l'Endif toujours la meme erreur).

Je pense que le problème provient du "Func $Stop" comme le précise le programme.
 

Cyrion

._.
Programmeur
Ancien staff
8 Juil. 2010
2,525
2
944
www.bufferoverflow.fr
Ah non non , je viens de voir mon erreur (J'ai pas Autoit d'installer donc j'ai pas pu vérifier).

C'est pas "Func $Stop" , mais juste "Func Stop"
 

Turki1923

Membre
13 Avr. 2013
12
0
201
J'ai trouvé l'erreur.

Enfait il y en avait deux :

Les parenthèses :

Func Stop()

et la boucle qui foirait tout, sa marche quand j'enlève la boucle.

Mais le problème c'est que je veux garder la boucle, arrêter de faire "s" quand j'appuie sur une touche et pouvoir la reprendre en appuyant sur une autre touche.
 
Statut
La discussion n'est pas ouverte à d'autres réponses