MouseWheel : besoin de sleep(300) ?

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
IsLaMalice
Niveau 4
Niveau 4
Messages : 50
Enregistré le : lun. 03 avr. 2017 23:31
Status : Hors ligne

MouseWheel : besoin de sleep(300) ?

#1

Message par IsLaMalice »

Bonjour

Dans le logiciel que j'utilise (non windows control friendly = tout a la reconnaissance de couleurs),

j'utilise MouseWheel("down",$i) pour balayer rapidement une arborescence a l'écran (evidement, les programmeurs n'ont pas pensé à faire en sorte que pagedown fonctionne,
= je ne peux pas utiliser send({PGDN})

de toute facon, j'ai optimisé mon scan, avec le param facultatif de MouseWheel("down",$i)

Code : Tout sélectionner

$size=WinGetPos("[Active]")
$bordures=125+90 ;125 pixels pour les menus et toolbars en haut, 90 en bas pour les lignes d''etat, ..
$param_mouseWheel=Int(($size[3]-$bordures)/27/3) ;27 pixels par ligne de mon arborescence, et chaque mouseWheel fait descendre de 3 lignes

scan($param_mouseWheel)



Func scan(ByRef $param_mouseWheel)
	Local $i=0
	Local $result = PixelSearch(358, 130, 358, 130+$param_mouseWheel*27, 0x7F7F85) ; gris foncé
	While $result=0 and $i<10
		MouseWheel("down", $param_mouseWheel)
		$i=$i+1
		$result = PixelSearch(358, 130, 358, 130+$param_mouseWheel*27, 0x7F7F85)
	WEnd

	If $i<>10 then
		MsgBox(0, "Bilan recherche", _
				"Premier pixel gris en X,Y : " & $result[0] & "," & $result[1] & @CRLF & _
				@CRLF & _
				$i & " scans (10max),"& @CRLF & _
				"par tranches de " & $param_mouseWheel & " coups de molettes (11 en plein écran HD)")
		Return $result
	Else
		MsgBox(0, "Bilan recherche", "Scan arrivé en bas," & @CRLF & _
					"ou arreté après avoir balayé " & $param_mouseWheel*3*10 & " lignes dans l'arbre" & @CRLF & _
					@CRLF & _
					"Pas de pixel gris trouvé > Exit")
		Exit
	EndIf
EndFunc
Modifié en dernier par IsLaMalice le sam. 22 avr. 2017 22:28, modifié 1 fois.
IsLaMalice
Niveau 4
Niveau 4
Messages : 50
Enregistré le : lun. 03 avr. 2017 23:31
Status : Hors ligne

Re: MouseWheel : pas immediat ?

#2

Message par IsLaMalice »

ma question :

MouseWheel() aurait il une "lenteur" ?

en effet, lors du scan,

il est sensé jouer de la molette $param_wheel fois avant d'incrémenté $i, mais il donne deja un result avant d'avoir fini ses coups de molettes...
Faut il faire un sleep($param_wheel*100) ?

un truc du genre ?

personne n'a vu ce souci de run derrière et passé a la ligne de code suivante ?

Is
IsLaMalice
Niveau 4
Niveau 4
Messages : 50
Enregistré le : lun. 03 avr. 2017 23:31
Status : Hors ligne

Re: MouseWheel : pas immediat ?

#3

Message par IsLaMalice »

effectivement,
en dessous de

sleep($param_mouseWheel*80) mon scan ne s'est pas arreté a la coordonnée...


ca réduit l'interet d'avoir un $param_mouseWheel elevé ?
ou alors je passe a une détection en douceur (avec le sleep) dès qu'il est dans le champ de vision

en gros, je ne mets pas mon sleep :oops:
et une fois le scan fini, je refait un PixelSearch( en dehors de la boucle, pour voir ou il a atteri.
IsLaMalice
Niveau 4
Niveau 4
Messages : 50
Enregistré le : lun. 03 avr. 2017 23:31
Status : Hors ligne

Re: MouseWheel : pas immediat ?

#4

Message par IsLaMalice »

a faire d'autres tests (en faisant varier $param_mouseWheel), ca me semble plus un temps de réaction système (OS ou CPU ?) que de l’inertie de molette...

cad, ca serait plus sleep(300) que fonction de $param_mouseWheel
Répondre