Что нового

Дергатель мышки

Dok85

Новичок
Сообщения
4
Репутация
0
Есть небольшой скрипт случайного перемещения указателя мыши по рабочему столу, все работает, но уперся в проблему через какое то время работы скрипта, курсор "попадает" в правый нижний угол рабочего стола, и переместится с этого положения уже не может. Можно как то указать область перемещения курсора, дабы избежать его попадания в угол, и замирания скрипта?
AutoIt код:
SRandom(@MSEC)
opt("MouseCoordMode",0)
Sleep(3000)
While true
  if random(0,3,1)=2 then
    Sleep(Random (1000,5000,1))
    Send("{PGDN}")
  Else
    Sleep(Random (500,1500,1))
    $aPos = MouseGetPos()
    MouseMove($aPos[0] + Random(240)-115, $aPos[1] + random(240)-110, 10)
    $aPos = MouseGetPos()
    MouseMove($aPos[0] + Random(254)-117, $aPos[1] + random(250)-115,10)
    Sleep(Random (10000,50000,1))
  EndIf
WEnd
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Вероятность перемещения курсора вправо и вниз несколько выше, вот со временем он себя в угол и загоняет
 
Автор
D

Dok85

Новичок
Сообщения
4
Репутация
0
Как этого можно избежать?
Может есть какой другой вариант скрипта для этих целей?
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Может есть какой другой вариант скрипта для этих целей?
Нужно знать какая цель и уже под эту цель написать алгоритм движения мышки.
Для начала можно изменить строки типа "Random(254)-117" так , чтобы цифра за скобками была ровно в два раза меньше числа в скобках.
 
Автор
D

Dok85

Новичок
Сообщения
4
Репутация
0
Цель, заставить софт мониторинга присутствия пользователя, думать что "это пользователь". Оно как бы получилось, но улет в угол все рушит.
 

xXx

╚{■_■}╗
Меценат
Сообщения
248
Репутация
95
Протестируйте пример:
Код:
SRandom(@MSEC)
Opt("MouseCoordMode", 0)
While Sleep(1000)
    MouseMove(_RandomPos(0), _RandomPos(1), Random(5, 10, 1))
WEnd

Func _RandomPos($i)
    Local $iMax = ($i ? @DesktopHeight : @DesktopWidth)
    Local $iPos = MouseGetPos($i)
    Do
        $iPos += Random(-111, 111, 1)
    Until ($iPos > 0 And $iPos < $iMax)
    Return $iPos
EndFunc   ;==>_RandomPos
 
Последнее редактирование:
Автор
D

Dok85

Новичок
Сообщения
4
Репутация
0
Все работает, спасибо. Но походу этого не хватает, мониторинг Timetracker бывает срабатывает. Буду изучать дальше.
 
Верх