Association touche =>clicks souris

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Leguiumz
Niveau 1
Niveau 1
Messages : 1
Enregistré le : jeu. 21 oct. 2021 16:16
Status : Hors ligne

Association touche =>clicks souris

#1

Message 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
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2086
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: Association touche =>clicks souris

#2

Message 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
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Répondre