Что нового

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

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 066
Репутация
206
Вероятность перемещения курсора вправо и вниз несколько выше, вот со временем он себя в угол и загоняет
 
Автор
D

Dok85

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

ra4o

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

Dok85

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

xXx

Меценат
Меценат
Сообщения
166
Репутация
55
Протестируйте пример:
Код:
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 бывает срабатывает. Буду изучать дальше.
 
Верх