#SingleInstance force
CoordMode, Mouse, Screen
SetKeyDelay -1
SetMouseDelay 0
SetBatchLines -1
isClicking:=False
Gui, a: New, hwndhGui AlwaysOnTop Resize MinSize
Gui, Add, Button, section w100 gStartClicking, Start F1 or F6
Gui, Add, Button, w100 yp x+5 gStopClicking, Stop F2 or F7
Gui, Add, Text,section xs+10 w200, Usage`n1. Set a speed range`n2. Alt+Left drag to draw rectangle`n3. Hit start
Gui, Add, Edit, w50
Gui, Add, UpDown, vDelaySecondsMin Range1-50000, 1
Gui, Add, Text,yp+3 x+5, -
Gui, Add, Edit, w50 yp-3 x+5 +Disabled
Gui, Add, UpDown,+Disabled Range1-50000, 0
Gui, Add, Text,yp+3 x+5, Seconds
Gui, Add, Edit, w50 section xs +Disabled
Gui, Add, UpDown,+Disabled Range0-50000, 0
Gui, Add, Text,yp+3 x+5, -
Gui, Add, Edit, w50 yp-3 x+5 +Disabled
Gui, Add, UpDown,+Disabled Range0-50000, 0
Gui, Add, Text,yp+3 x+5, Milliseconds
Gui, Add, Edit, section xs w50 +Disabled
Gui, Add, UpDown,+Disabled Range0-100, 100
Gui, Add, Text,yp+3 x+5, Change position chance `%
Gui, Add, Text,xs vStatus w120, Idle
Gui, Add, Link,xs, Full version`, learn to write AHK!
Gui, Show,, Auto Clicker
OnMessage(0x112, "WM_SYSCOMMAND")
return
ClickTimer:
loop {
if (!isClicking) {
Tooltip, Stopped!
Sleep, 1000
Tooltip
return
}
Random, newX, x1,x2
Random, newY, y1,y2
MouseMove, newX, newY
Sleep, 1
Click
delay := DelaySecondsMin*1000
Sleep, delay
}
return
F1::
F6::
StartClicking:
Gui, a: Submit, Nohide
if (!isClicking) {
isClicking:=True
Settimer, ClickTimer, -1
UpdateText("Status", "Clicking!")
}
return
F2::
F7::
StopClicking:
Gui, a: Submit, Nohide
isClicking:=False
UpdateText("Status", "Idle")
return
UpdateText(ControlID, NewText)
{
static OldText := {}
global hGui
if (OldText[ControlID] != NewText)
{
GuiControl, %hGui%:, % ControlID, % NewText
OldText[ControlID] := NewText
}
}
WM_SYSCOMMAND(wp, lp, msg, hwnd) {
static SC_CLOSE := 0xF060
if (wp != SC_CLOSE)
Return
ExitApp
}
marker(X:=0, Y:=0, W:=0, H:=0)
{
T:=3,
w2:=W-T,
h2:=H-T
Gui marker: +LastFound +AlwaysOnTop -Caption +ToolWindow +E0x08000000 +E0x80020
Gui marker: Color, Red ;Color
Gui marker: Show, w%W% h%H% x%X% y%Y% NA
WinSet, Transparent, 150
WinSet, Region, 0-0 %W%-0 %W%-%H% 0-%H% 0-0 %T%-%T% %w2%-%T% %w2%-%h2% %T%-%h2% %T%-%T%
Return
}
!LButton::
Tooltip
WinGetPos XN, YN, , , A
MouseGetPos x1, y1
While GetKeyState("LButton","P") {
MouseGetPos x2, y2
x:= (x1= 100 || h >= 100) {
break
}
}
if (x2