Функция которую хочу сделать, аналог стандартному MouseMove(), но чуть больше параметров, и главное во время движения курсора можно будет выполнять попутно еще какой то код (проверки пикселей и т.д).
Помогите сделать вычисления для координаты $y
Решил задачку так: :laugh:
Помогите сделать вычисления для координаты $y
Код:
_MouseMove(@DesktopWidth/2, @DesktopHeight/2)
Func _MouseMove($x, $y, $speed = 10, $Step = 1)
$speed = $speed/10
Local $pos = MouseGetPos()
If $pos[0] > $x Then $Step = -$Step
For $ix = $pos[0] To $x Step $Step
MouseMove($ix, $y, 0)
;попутный код...
_Sleep($speed)
Next
EndFunc
Func _Sleep($time_Sleep);можно ставить значения меньшие чем в стандартном Sleep()
Local $Timer = TimerInit()
While TimerDiff($Timer) <= $time_Sleep
WEnd
EndFunc
Решил задачку так: :laugh:
Код:
_MouseMove(@DesktopWidth/2, @DesktopHeight/2, 10, 2)
Func _MouseMove($x, $y, $speed = 10, $Step = 1)
$speed = $speed/10
Local $pos = MouseGetPos()
If Abs($x - $pos[0]) > Abs($pos[1]-$y) Then
Local $k = ($x - $pos[0]) / ($pos[1]-$y)
If $pos[0] > $x Then $Step = -$Step
For $ix = $pos[0] To $x Step $Step
MouseMove($ix, $pos[1] - ($ix-$pos[0])/$k , 0)
_Sleep($speed)
Next
Else
Local $k = ($pos[1]-$y) / ($x - $pos[0])
If $pos[1] > $y Then $Step = -$Step
For $iY = $pos[1] To $y Step $Step
MouseMove($pos[0] - ($iY-$pos[1])/$k, $iY , 0)
_Sleep($speed)
Next
EndIf
EndFunc
Func _Sleep($time_Sleep);можно ставить значения меньшие чем в стандартном Sleep()
Local $Timer = TimerInit()
While TimerDiff($Timer) <= $time_Sleep
WEnd
EndFunc