Voici un petit bout de script qui utilisé avec de trop grandes valeur vous fera ressentir les limite d'autoit

Code : Tout sélectionner
HotKeySet('g','get')
$gui = GUICreate('')
GUISetState()
$zoom = zoom2($gui, 25,25,20,20,MouseGetPos(0)-5,MouseGetPos(1)-5)
While 1
Sleep(5000)
WEnd
Func get()
$zoom = zoom2($gui, 25,25,20,20,MouseGetPos(0)-5,MouseGetPos(1)-5, $zoom)
EndFunc
Func zoom2(ByRef $Z_Gui, $Z_NbX, $Z_NbY, $Z_LX, $Z_LY, $Z_CX, $Z_CY, $Z_Maj = "")
Local $Z_winpos = WinGetPos($Z_Gui)
WinMove($Z_Gui,"" ,$Z_winpos[0],$Z_winpos[1] ,$Z_NbX * $Z_LX, $Z_NbY * $Z_LY)
GUISwitch($Z_Gui)
If $Z_Maj = "" Then
Dim $Z_Color[$Z_NbX][$Z_NbY]
Dim $Z_Label[$Z_NbX][$Z_NbY]
For $Z_i = 0 To $Z_NbX -1
For $Z_u = 0 To $Z_NbY -1
$Z_Color[$Z_i][$Z_u] = PixelGetColor($Z_i + $Z_CX, $Z_u + $Z_CY)
$Z_Label[$Z_i][$Z_u] = GUICtrlCreateLabel('', $Z_i * $Z_LX, $Z_u * $Z_LY, $Z_LX, $Z_LY)
GUICtrlSetbkColor($Z_Label[$Z_i][$Z_u], $Z_Color[$Z_i][$Z_u])
Next
Next
Return $Z_Label
Else
Dim $Z_Color[$Z_NbX][$Z_NbY]
$Z_Label = $Z_Maj
For $Z_i = 0 To $Z_NbX -1
For $Z_u = 0 To $Z_NbY -1
$Z_Color[$Z_i][$Z_u] = PixelGetColor($Z_i + $Z_CX, $Z_u + $Z_CY)
;$Z_Label[$Z_i][$Z_u] = GUICtrlCreateLabel('', $Z_i * $Z_LX, $Z_u * $Z_LY, $Z_LX, $Z_LY)
GUICtrlSetbkColor($Z_Label[$Z_i][$Z_u], $Z_Color[$Z_i][$Z_u])
Next
Next
Return $Z_Label
EndIf
EndFunc
ByRef $Z_Gui : une GUI qui sera utilisée pour afficher l'image. Elle sera redimensionnée à la bonne taille.
$Z_NbX : Nombre de pixel de largeur scannés
$Z_NbY : Nombre de pixel de hauteur scannés
$Z_LX, $Z_LY : Largeur des pixel dans la GUI. Une valeur de 1 n'altèrera pas l'image. 2 fera un zoom x2, 10 x10...
$Z_CX, $Z_CY : Coordonées de départ de la zone de scanne
$Z_Maj = "" : Placez ici la valeur renvoyé par un premier zoom2() pour mettre a jour une série de label au lieu de les recreer
Voila, ya surement moyen de faire mieux. Les label sont pas tres adaptés, mais bon, ca marche :p
PS : pour tester, commencez avec de petites valeur $Z_NbX et $Z_NbY