Il y'a une documentation incluse ci-dessous avec ma fonction pour mieux comprendre (je te conseille de coller la fonction dans scite pour bien lire la documentation (les bordures du forum l'écrasent )
Code : Tout sélectionner
#include-once
Func wa($snd = "",$sleep = 300)
Opt ("WinWaitDelay",0)
opt ("WinTitleMatchMode",2)
opt("MouseCoordMode",2)
; FONCTION
; déclaration des variables ... vous pouvez changer aisément les valeurs de ses variables pour les adapter à vos préférences.
;si une valeur des variable est détecté entre deux séparateurs "|" , les prochains paramètres seront
;réservé pour l'exécution de cette fonction. Si rien n'est détecté, la commande send enverra le texte entre les séparateurs.
;Le premier paramètres est toujours réservé pour définir le titre de la fenêtre à activer et le deuxième pour du texte
; présent à l'intérieur de celle-ci
; déclaration des variables ... vous pouvez changer aisément les valeurs de ses variables pour les adapter à vos préférences.
$cs ="#" ; ControlID, Send ControlSend
$cs2 = "##" ; ControlID, Send1, Send2 ControlSend 2 strings
$cs3 = "###" ; ControlID, Send1, Send2, Send3 ControlSend 3 strings
$d = "S" ; Sleep delay Ajout d'un délai d'éxécution avant la suite du script
$msg = "MSG" ; Titre, Texte Msgbox
$dmsg = "DMSG" ; Titre, Texte Msgbox se fermant après 5 secondes
$tmsg = "TMSG" ; Titre, Texte, Temps avant fermeture Msgbox fermant après X secondes (définit par le param 3)
$cc = "CC" ; ControlID du bouton ControlClick sur le bouton spécifié
$ccxy = "CCXY" ; ControlID, X, Y ControlClick sur le bouton spécifié au coordonnées X, Y
$ccrxy = "ccrxy" ; ControlID, X, Y ControlClick (bouton droit) sur le bouton spécifié au coordonnées X, Y
$mc = "MC" ; X, Y MouseClick au coordonnées X, Y.
$mc2 = "MC2" ; X, Y MouseClick (2X) au coordonnées X, Y.
$md = "MD" ; Bouton MouseDown ( Right, left ou Middle )
$mu = "MU" ; Bouton MouseUp ( Right, left ou Middle )
$mcr = "MCR" ; X, Y MouseClick ( bouton droit ) au coordonnées X, Y
$mm = "MM" ; X, Y MouseMove au coordonnées X,Y
$mw = "MW" ; Direction ( up ou Down ), Nb de clics MouseWheel
$snd = StringSplit($snd, "|")
$t = $snd[1] ; si vous voulez utiliser la fonction pour seulement activer la fenêtre au titre $t sans aucun autres paramètres, vous
$tt = $snd[2] ; devrez ajoutez un séparateur à la fin ( la valeur de $tt sera alors automatiquement "" )
Local $reset
WinWait($t,$tt)
IF Not WinActive($t, $tt) Then WinActivate($t, $tt)
WinWaitActive($t, $tt)
For $i = 3 To $snd[0]
WinWait($t,$tt)
IF Not WinActive($t, $tt) Then WinActivate($t, $tt)
WinWaitActive($t, $tt)
; CONTROL SEND
Select
Case $snd[$i] = $cs
Sleep($sleep)
ControlSend($t,$tt,$snd[$i+1],$snd[$i+2])
$reset = 2
; Control Send 2 string au même ControlID
Case $snd[$i] = $cs2
Sleep($sleep)
ControlSend($t,$tt,$snd[$i+1],$snd[$i+2])
Sleep($sleep)
ControlSend($t,$tt,$snd[$i+1],$snd[$i+3])
$reset = 3
; Control Send 3 string au même control id
Case $snd[$i] = $cs3
Sleep($sleep)
ControlSend($t,$tt,$snd[$i+1],$snd[$i+2])
Sleep($sleep)
ControlSend($t,$tt,$snd[$i+1],$snd[$i+3])
Sleep($sleep)
ControlSend($t,$tt,$snd[$i+1],$snd[$i+4])
$reset = 4
; DÉLAI SUPPLÉMENTAIRE
Case $snd[$i] = $d
Sleep($snd[$i+1])
$reset = 1
; MESSAGE
Case $snd[$i] = $msg
Sleep($sleep)
MsgBox(0,$snd[$i+1],$snd[$i+2])
$reset = 2
; Message se fermant après 5 secondes
Case $snd[$i] = $dmsg
Sleep($sleep)
MsgBox(0,$snd[$i+1],$snd[$i+2],"5")
$reset = 2
; Message se fermant après "X" secondes
Case $snd[$i] = $tmsg
Sleep($sleep)
MsgBox(0,$snd[$i+2],$snd[$i+3],$snd[$i+1])
$reset = 3
; Control Click sur Bouton (ControlID)
Case $snd[$i] = $cc
Sleep($sleep)
ControlClick($t,$tt,$snd[$i+1])
$reset = 1
; Control Click sur coordonnées
Case $snd[$i] = $ccxy
Sleep($sleep)
ControlClick($t,$tt,$snd[$i+1],"","",$snd[$i+2],$snd[$i+3])
$reset = 3
; Control Click avec bouton droit sur coordonnées
Case $snd[$i] = $ccrxy
Sleep($sleep)
ControlClick($t,$tt,$snd[$i+1],"right","",$snd[$i+2],$snd[$i+3])
$reset = 3
; Mouse Click
Case $snd[$i] = $mc
Sleep($sleep)
MouseClick("left",$snd[$i+1],$snd[$i+2])
$reset = 2
; Mouse Click 2 X
Case $snd[$i] = $mc2
Sleep($sleep)
MouseClick("left",$snd[$i+1],$snd[$i+2],2)
$reset = 2
; Mouse Down
Case $snd[$i] = $md
Sleep($sleep)
MouseDown($snd[$i+1])
$reset = 1
; Mouse Up
Case $snd[$i] = $mu
Sleep($sleep)
MouseUp($snd[$i+1])
$reset = 1
; Mouse Click Right
Case $snd[$i] = $mcr
Sleep($sleep)
MouseClick("right",$snd[$i+1],$snd[$i+2])
$reset = 2
; Mouse Move
Case $snd[$i] = $mm
Sleep($sleep)
MouseMove($snd[$i+1],$snd[$i+2])
$reset = 2
; Mouse Wheel
Case $snd[$i] = $mw
Sleep($sleep)
MouseWheel($snd[$i+1],$snd[$i+2])
$reset = 2
; SEND
Case $snd[$i] <> ""
Sleep($sleep)
Send($snd[$i])
EndSelect
; Permet d'empêcher les valeurs suivant des paramètres ( contolSend, mouseClick, etc... ) d'ètre réutilisé dans des commandes "send"
Select
Case $reset = 1
$snd[$i+1] = ""
Case $reset = 2
$snd[$i+1] = ""
$snd[$i+2] = ""
Case $reset = 3
$snd[$i+1] = ""
$snd[$i+2] = ""
$snd[$i+3] = ""
Case $reset = 4
$snd[$i+1] = ""
$snd[$i+2] = ""
$snd[$i+3] = ""
$snd[$i+4] = ""
EndSelect
$reset = 0
Next
EndFunc
Func _Opt ()
Opt("WinWaitDelay",100)
Opt("WinTitleMatchMode",4)
Opt("WinDetectHiddenText",1)
Opt("MouseCoordMode",0)
EndFunc