Page 1 sur 1

Association touche =>clicks souris

Posté : jeu. 21 oct. 2021 16:56
par Leguiumz
Salut tout le monde ! Ravi de découvrir ce forum !

Je viens de commencer un script, en essayant de m'aider du PDF tutoriel.

J'ai simplement envie de créer un script qui permettrait simplement d'associer la pression de boutons d'une manette (XBOX USB, classique) à des clicks simple à différents endroits de l'écran.

Je suis en train de faire des tests en utilisant les touches du claviers :

Code : Tout sélectionner

#include <Misc.au3>

While 1
   If _IsPressed("41") Then
	  MouseClick("left",120,17,1,0)
	  While _IsPressed("41")
		 Sleep(10)
	  WEnd
   EndIf
   If _IsPressed("5A") Then
	  MouseClick("left",240,17,1,0)
	  While _IsPressed("5A")
		 Sleep(10)
	  WEnd
   EndIf
Sleep(10)
WEnd
J'utilise donc les touches A et Z pour mes tests.

Mon principal but avec ce script est de bypasser le système de réduction/agrandissement automatique d'une fenêtre, dans le cas d'un spam, qui serait interprété comme un double click.

Ma question est simple : Comment dire à la première condition "if" que si je commence à spammer A, j'aimerais qu'il alterne entre les deux positionnements de clicks possibles : (120,17) et (240,17) (qui est également le positionnement de click associé à la touche Z, actuellement)

Leguiumz

Re: Association touche =>clicks souris

Posté : jeu. 21 oct. 2021 19:44
par TommyDDR
Vous pouvez faire comme ça (changez $timeout = 100 si vous voulez alterner plus ou moins rapidement, la valeur est en millisecondes) :
#include <Misc.au3>

While 1
   clic()
   Sleep(10)
WEnd

Func clic()
   Local $pos = [[120, 17], [240, 17]]
   Local Static $nextIndex = 0
   Local Static $timer = 0
   Local $timeout = 100
   If _IsPressed("41") Then
      If(TimerDiff($timer) < $timeout) Then
         $nextIndex = Mod($nextIndex+1, UBound($pos, 1))
      Else
         $nextIndex = 0
      EndIf
      $timer = TimerInit()
      MouseClick("left",$pos[$nextIndex][0],$pos[$nextIndex][1],1,0)
      While _IsPressed("41")
         Sleep(10)
      WEnd
   EndIf
   If _IsPressed("5A") Then
      MouseClick("left",$pos[1][0],$pos[1][1],1,0)
      While _IsPressed("5A")
         Sleep(10)
      WEnd
   EndIf
EndFunc