#NoEnv
#SingleInstance Force
SetWorkingDir %A_ScriptDir%
IsRunning := false
Gui, Add, Text, x10 y10 w300 h20, Выберите окна Roblox для Anti-AFK:
Gui, Add, Button, x220 y5 w90 h25 gRefreshWindows, Обновить список
Loop, 10 {
posY := 30 + (A_Index * 25)
Gui, Add, Checkbox, x15 y%posY% w290 h20 vWinCB%A_Index% Hidden, Window
}
Gui, Add, Text, x10 y310 w110 h20, Интервал (секунды):
Gui, Add, Edit, x120 y307 w60 h20 vIntervalNumber Number, 60
Gui, Add, Button, x10 y340 w300 h35 vStartBtn gToggleAntiAFK, ЗАПУСТИТЬ ANTI-AFK
Gui, Show, w320 h390, Roblox Anti-AFK Control
GoSub, RefreshWindows
return
RefreshWindows:
WinGet, robloxIDs, List, ahk_exe RobloxPlayerBeta.exe
Loop, 10 {
GuiControl, Hide, WinCB%A_Index%
GuiControl,, WinCB%A_Index%, 0
}
if (robloxIDs = 0) {
GuiControl, Show, WinCB1
GuiControl,, WinCB1, Roblox не найден!
GuiControl, Disable, WinCB1
return
}
Loop, %robloxIDs% {
if (A_Index > 10)
break
this_id := robloxIDs%A_Index%
WinGetTitle, this_title, ahk_id %this_id%
if (this_title = "")
this_title := "Roblox Client #" . A_Index
GuiControl, Enable, WinCB%A_Index%
GuiControl, Text, WinCB%A_Index%, %this_title% (ID: %this_id%)
GuiControl, Show, WinCB%A_Index%
GuiControl,, WinCB%A_Index%, 1
}
return
ToggleAntiAFK:
Gui, Submit, NoHide
if (IsRunning) {
SetTimer, DoAntiAFK, Off
IsRunning := false
GuiControl,, StartBtn, ЗАПУСТИТЬ ANTI-AFK
SoundBeep, 500, 200
} else {
if (IntervalNumber < 5) {
MsgBox, 48, Ошибка, Интервал должен быть не менее 5 секунд!
return
}
TimerMs := IntervalNumber * 1000
SetTimer, DoAntiAFK, %TimerMs%
IsRunning := true
GuiControl,, StartBtn, ОСТАНОВИТЬ ANTI-AFK
SoundBeep, 1000, 200
GoSub, DoAntiAFK
}
return
DoAntiAFK:
Gui, Submit, NoHide
WinGet, robloxIDs, List, ahk_exe RobloxPlayerBeta.exe
Loop, %robloxIDs% {
if (A_Index > 10)
break
cbValue := WinCB%A_Index%
if (cbValue = 1) {
this_id := robloxIDs%A_Index%
; 0x0201 = WM_LBUTTONDOWN, 0x0202 = WM_LBUTTONUP
; Отправляет клик мышкой напрямую в фоновое окно без фокуса и без разворачивания
PostMessage, 0x0201, 1, 0x00640064,, ahk_id %this_id% ; Нажали в точке (100, 100)
Sleep, 50
PostMessage, 0x0202, 0, 0x00640064,, ahk_id %this_id% ; Отпустили
; Дополнительно посылаем виртуальное нажатие виртуальной клавиши
ControlSend,, {VirtualKey}, ahk_id %this_id%
}
}
return
GuiClose:
ExitApp