Une petite fonction à deux francs cinquante, que j'ai programmée à mes heures perdues, permettant de cliquer sur touts les pixels d'une même couleur sur votre écran. D'ailleurs, je sais pas si ça marhce, à tester...
Elle fonctionne par balayage de l'écran : elle configure un cadre de recherche de 2 pixels de largeur, et balaye votre écran dans sa largeur de plusieurs PixelSearch, avec à chaque fois un MouseClick() sur les pixels de couleur demandée. Avec aussi _ColorGetNumber qui retourne le nombre de pixels de la même couleur sur vôtre écran (approximatif), ou alors le pourcentage, selon le flag utilisé.
UDF:
- _ColorClick($color ;la couleur du pixel à cliquer, $button ;le bouton (droite ou gauche) à enfoncer, $number ;le nombre de clics par pixel, $speed ;la vitesse de clic par pixel)
- _Color_GetNumber($colorcheck ;la couleur à vérifier, $format ;flag 0 pour le nb de pixels, flag 1 pour un pourcentage.)
Code : Tout sélectionner
;~ ================================================================================================
;~ Objet : Fonction _ColorClick
;~ Auteur : HabibSbib
;~ Contact : habibsbib@hotmail.fr
;~ Langue : Français
;~ Version : 1.0
;~ Licence : Aucune
;~ Année de production : 2009
;~ Description : Une fonction permettant de combler partiellement les lacunes du PixelSearch de la version 3.0 d'AutoIt.
;~ ================================================================================================
Func _ColorClick ($color, $button, $number, $speed)
$scan = 0
If (@DesktopWidth>@DesktopHeight) Then
Do
$coord = PixelSearch ($scan, 0, $scan, @DesktopHeight, $color)
If not @error Then
MouseClick ($button, $coord[0], $coord[1], $number, $speed)
Else
sleep(0)
EndIf
$scan+=2
Until ($scan=@DesktopWidth)
EndIf
If (@DesktopHeight>@DesktopWidth) Then
Do
$coord = PixelSearch ($scan, 0, $scan, @DesktopWidth, $color)
If not @error Then
MouseClick ($button, $coord[0], $coord[1], $number, $speed)
Else
sleep(0)
EndIf
$scan+=2
Until ($scan=@DesktopHeight)
EndIf
EndFunc
Func _Color_GetNumber($colorcheck, $format)
Global $getnumber
$scan = 0
If (@DesktopWidth>@DesktopHeight) Then
Do
$coord = PixelSearch ($scan, 0, $scan, @DesktopHeight, $colorcheck)
If not @error Then
$getnumber+=1
Else
sleep(0)
EndIf
$scan+=2
Until ($scan=@DesktopWidth)
EndIf
If (@DesktopHeight>@DesktopWidth) Then
Do
$coord = PixelSearch ($scan, 0, $scan, @DesktopWidth, $colorcheck)
If not @error Then
$getnumber+=1
Else
sleep(0)
EndIf
$scan+=2
Until ($scan=@DesktopHeight)
EndIf
$total_pixels=(@DesktopWidth*@DesktopHeight)
$getnumber_1 = ($getnumber/=$total_pixels)
$getnumber_2 = ($getnumber_1*=100)
Select
Case $format ="0"
Return $getnumber_2
Case $format = "1"
Return $getnumber
EndSelect
EndFunc
Bonne journée.