Press
Numpad1 a few times.
Try Changing the speed and run again.
Code: Select all
#SingleInstance, Force
SetBatchLines, -1
CoordMode, Mouse, Screen
return
*ESC::ExitApp
*Numpad1::
MouseGetPos, sx, sy
MousePosition := "", MousePosition := New HB_Vector(sx,sy) ; The starting position for your cursor [ Set a x and y value (x,y)].
MouseTarget := "", MouseTarget := New HB_Vector(Random(0,A_ScreenWidth),Random(0,A_ScreenHeight)) ; The ending position for you cursor [ Set a x and y value (x,y)].
Acc := "", Acc := New HB_Vector()
Speed := 5 ; <<<<<<-------------------- Change Speed to move faster (higher value) or slower (lower value).
Dist := Floor(MousePosition.Dist(MouseTarget)/Speed)
DllCall("SetCursorPos", "int", MousePosition.X, "int", MousePosition.Y)
While(--Dist) {
Acc.X := MouseTarget.X, Acc.Y := MouseTarget.Y
Acc.Sub(MousePosition)
Acc.SetMag(Speed)
MousePosition.Add(Acc)
DllCall("SetCursorPos", "int", MousePosition.X, "int", MousePosition.Y)
sleep, 10
}
DllCall("SetCursorPos", "int", MouseTarget.X, "int", MouseTarget.Y)
SoundBeep, 500 ; <-------- Replace with click or w/e you want
return
Random(Min, Max){
Random, out, Min, Max
return out
}
; Vector class (not required but makes things easy).
;*******************************************************************************************************************************************************
;*******************************************************************************************************************************************************
;*******************************************************************************************************************************************************
Class HB_Vector {
__New(x:=0,y:=0){
This.X:=x
This.Y:=y
}
Add(Other_HB_Vector){
This.X+=Other_HB_Vector.X
This.Y+=Other_HB_Vector.Y
}
Sub(Other_HB_Vector){
This.X-=Other_HB_Vector.X
This.Y-=Other_HB_Vector.Y
}
mag(){
return Sqrt(This.X*This.X + This.Y*This.Y)
}
magsq(){
return This.Mag()**2
}
setMag(in1){
m:=This.Mag()
This.X := This.X * in1/m
This.Y := This.Y * in1/m
return This
}
mult(in1,in2:="",in3:="",in4:="",in5:=""){
if(IsObject(in1)&&in2=""){
This.X*=In1.X
This.Y*=In1.Y
}else if(!IsObject(In1)&&In2=""){
This.X*=In1
This.Y*=In1
}else if(!IsObject(In1)&&IsObject(In2)){
This.X*=In1*In2.X
This.Y*=In1*In2.Y
}else if(IsObject(In1)&&IsObject(In2)){
This.X*=In1.X*In2.X
This.Y*=In1.Y*In2.Y
}
}
div(in1,in2:="",in3:="",in4:="",in5:=""){
if(IsObject(in1)&&in2=""){
This.X/=In1.X
This.Y/=In1.Y
}else if(!IsObject(In1)&&In2=""){
This.X/=In1
This.Y/=In1
}else if(!IsObject(In1)&&IsObject(In2)){
This.X/=In1/In2.X
This.Y/=In1/In2.Y
}else if(IsObject(In1)&&IsObject(In2)){
This.X/=In1.X/In2.X
This.Y/=In1.Y/In2.Y
}
}
dist(in1){
return Sqrt(((This.X-In1.X)**2) + ((This.Y-In1.Y)**2))
}
dot(in1){
return (This.X*in1.X)+(This.Y*In1.Y)
}
cross(in1){
return This.X*In1.Y-This.Y*In1.X
}
Norm(){
m:=This.Mag()
This.X/=m
This.Y/=m
}
}
HTH