- Регистрация
- 09.10.2015
- Сообщения
- 3 916
- Благодарностей
- 3 867
- Баллы
- 113
Недавно был один трастовый ресурс, который при регистрации палил движение курсора. И если курсор не двигался, то он автоматически вываливал ошибку при регистрации. Я вначале тупил и не понимал в чём дело, но друг подкинул эту мысль с эмуляцией мыши и она частично сработала (т.к. при запуске во многопотоке он ещё что-то палил, но я так до конца и не разобрался).
Данный сниппет - это модификация чьего-то кода, скорее всего даже не юзеров зенки - не помню где я его нашел)
Вам нужно указать числовые значения в переменных element_left и element_top, у меня это были leftInTab и topInTab для какого-то html-тега на странице. По факту вы же можете поставить туда рандомные значения, чтобы курсор в своем начальном положении находился где-то в середине страницы (можно посчитать), ну или ввести туда просто значения от 200 до 500, например (ведь мало у кого браузеры меньше 500 пикселей в ширину/высоту).
Фактически - такое встречается очень редко, но иногда данный код вам может здорово помочь! Единственное, что я бы тут ещё дополнительно отметил - стоит "поиграться" и придумать как делать больше движений и "рисовать" курсором мыши более сложные движения.
Я же использовал этот сниппет для ZennoPoster следующим образом: я ставил его перед каждым заполнением нового input'а, чтобы сэмулировать движение мыши к нему от предыдущего элемента.
Данный сниппет - это модификация чьего-то кода, скорее всего даже не юзеров зенки - не помню где я его нашел)
Код:
int x = Convert.ToInt32(project.Variables["element_left"].Value);
int y = Convert.ToInt32(project.Variables["element_top"].Value);
Random rnd = new Random();
x += rnd.Next(50, 200);
y += rnd.Next(50, 200);
// массив точек, по которым будет двигаться курсор мыши
Point[] points = new Point[10]
{
new Point(x, y),
new Point(x + 10, y + 5),
new Point(x + 20, y + 10),
new Point(x + 30, y + 15),
new Point(x + 40, y + 20),
new Point(x + 50, y + 25),
new Point(x + 60, y + 30),
new Point(x + 70, y + 35),
new Point(x + 80, y + 40),
new Point(x + 90, y + 45)
};
// случайные задержки между движениями
int[] delay = new int[10] {
rnd.Next(50, 150),
rnd.Next(50, 150),
rnd.Next(50, 150),
rnd.Next(50, 150),
rnd.Next(50, 150),
rnd.Next(50, 150),
rnd.Next(50, 150),
rnd.Next(50, 150),
rnd.Next(50, 150),
rnd.Next(50, 150)
};
// функция, выполняющая движение по заданной траектории с указанными задержками
instance.ActiveTab.MouseMove(points, delay, false);
Вам нужно указать числовые значения в переменных element_left и element_top, у меня это были leftInTab и topInTab для какого-то html-тега на странице. По факту вы же можете поставить туда рандомные значения, чтобы курсор в своем начальном положении находился где-то в середине страницы (можно посчитать), ну или ввести туда просто значения от 200 до 500, например (ведь мало у кого браузеры меньше 500 пикселей в ширину/высоту).
Фактически - такое встречается очень редко, но иногда данный код вам может здорово помочь! Единственное, что я бы тут ещё дополнительно отметил - стоит "поиграться" и придумать как делать больше движений и "рисовать" курсором мыши более сложные движения.
Я же использовал этот сниппет для ZennoPoster следующим образом: я ставил его перед каждым заполнением нового input'а, чтобы сэмулировать движение мыши к нему от предыдущего элемента.