#Requires AutoHotkey v2.0
#SingleInstance Force
; --- Настройки интерфейса ---
MyGui := Gui("+AlwaysOnTop -MaximizeBox", "Pro Clicker v2.0")
MyGui.BackColor := "121212"
MyGui.SetFont("s10 cWhite", "Segoe UI")
MyGui.Add("Text", "Center w200", "СОСТОЯНИЕ:")
; Добавили h30, чтобы текст не обрезался снизу
StatusLabel := MyGui.Add("Text", "Center w200 h30 cRed", "ВЫКЛЮЧЕН")
StatusLabel.SetFont("s14 Bold")
MyGui.Add("Text", "w180", "Интервал цикла (мс):")
EditInterval := MyGui.Add("Edit", "w180 Background212121 cWhite", "100")
MyGui.Add("Text", "w180", "Зажим кнопки (мс):")
EditHold := MyGui.Add("Edit", "w180 Background212121 cWhite", "70")
MyGui.SetFont("s8 cGray")
MyGui.Add("Text", "w180", "Клавиша активации: F2")
MyGui.Show("w220")
; --- Логика кликера ---
Toggled := false
F2:: {
global Toggled := !Toggled
if Toggled {
; Обновляем визуализацию
StatusLabel.Value := "АКТИВЕН"
StatusLabel.Opt("cGreen")
SoundBeep(750, 150)
; Берем значения из полей ввода
Interval := IsNumber(EditInterval.Value) ? Number(EditInterval.Value) : 100
SetTimer(ClickLoop, Interval)
} else {
StatusLabel.Value := "ВЫКЛЮЧЕН"
StatusLabel.Opt("cRed")
SoundBeep(500, 150)
SetTimer(ClickLoop, 0)
}
}
ClickLoop() {
if !Toggled
return
HoldTime := IsNumber(EditHold.Value) ? Number(EditHold.Value) : 70
Click("Down")
Sleep(HoldTime)
Click("Up")
}
; Закрытие скрипта при закрытии окна
MyGui.OnEvent("Close", (*) => ExitApp())