Работа с mouse.send_move()

Все вопросы касающиеся использования
программы можно задать здесь
Ответить
excme
Сообщения: 36
Зарегистрирован: 02 окт 2015, 16:38

Работа с mouse.send_move()

Сообщение excme » 02 фев 2016, 23:29

Добрый день!

Решил посмотреть на Вебивизоре, как работает команда mouse.send_move(). Использую последнюю версию на C#
0:16
019.png
019.png (28.33 КБ) 929 просмотров
0:42
042.png
042.png (120.23 КБ) 929 просмотров
1:09
109.png
109.png (205.9 КБ) 929 просмотров
Как видно, что точка начала движения к mouse.send_move(x,y) всегда одна и таже.
Как можно указывать точку начала движения или XHE может запоминать последнее расположение мышки?
Короче, как с этим бороться?

Аватара пользователя
bigfozzy
Site Admin
Сообщения: 3048
Зарегистрирован: 28 июл 2008, 17:24
Контактная информация:

Re: Работа с mouse.send_move()

Сообщение bigfozzy » 03 фев 2016, 19:29

Спасибо,исправим эту ситуацию в следующей версии (ввйдет к концу недели)
Сейчас - движение начинается с реальной позиции курсора, будет введена виртуальная для операций мыши.

Сейчас бороться можно переписав функцию :
public bool send_move(int x, int y, bool scroll = true, int time = 0, int tremble = 5) в файле xhe_mouse.cs

Код: Выделить всё

        // отправить перемещение мыши в заданную точку
        public bool send_move(int x, int y, bool scroll = true, int time = 0, int tremble = 5)
        {
            if (time == 0)
            {
                string[,] aParams = new string[,] { { "x", x.ToString() }, { "y", y.ToString() }, { "scroll", scroll.ToString() } };
                return call_boolean(GetCurrentMethod(), aParams);
            }
            else
            {
                double xc = get_x();
                double yc = get_y();
                double StepX = (x - xc - 0.0001) / time / 50;
                double StepY = (y - yc - 0.0001) / time / 50;
                double prevRandX = 0; int prevRandY = 0;
                for (int i = 0; i < 50 * time - 1; i++)
                {
                    xc += StepX - prevRandX;
                    yc += StepY - prevRandY;
                    prevRandX=new Random().Next(-tremble,tremble);
                    prevRandY = new Random().Next(-tremble, tremble);
                    string[,] aParams = new string[,] { { "x", xc.ToString() }, { "y", yc.ToString() }, { "scroll", scroll.ToString() } };
                    call_boolean(GetCurrentMethod(), aParams);
                    Thread.Sleep(20);
                }
                string[,] aParams1 = new string[,] { { "x", x.ToString() }, { "y", y.ToString() }, { "scroll", scroll.ToString() } };
                return call_boolean(GetCurrentMethod(), aParams1);
            }
        }

начальная точка задается сейчас здесь:

Код: Выделить всё

double xc = get_x();
double yc = get_y();

oleg88889
Сообщения: 128
Зарегистрирован: 19 мар 2013, 14:35

Re: Работа с mouse.send_move()

Сообщение oleg88889 » 03 фев 2016, 23:03

Есть еще проблемка - $mouse->send_left_button_down отправленное во фрейм срабатывает как клик, точнее "не держит", а вот $mouse->left_button_down работает как надо, легко проверить на капче аюахуман, проверил сейчас на последней версии. Мне лично уже не надо, мож кому в будущем пригодится.

Аватара пользователя
bigfozzy
Site Admin
Сообщения: 3048
Зарегистрирован: 28 июл 2008, 17:24
Контактная информация:

Re: Работа с mouse.send_move()

Сообщение bigfozzy » 04 фев 2016, 15:03

oleg88889 писал(а):Есть еще проблемка - $mouse->send_left_button_down отправленное во фрейм срабатывает как клик, точнее "не держит", а вот $mouse->left_button_down работает как надо, легко проверить на капче аюахуман, проверил сейчас на последней версии. Мне лично уже не надо, мож кому в будущем пригодится.
Спасибо, исправим

excme
Сообщения: 36
Зарегистрирован: 02 окт 2015, 16:38

Re: Работа с mouse.send_move()

Сообщение excme » 19 фев 2016, 16:02

Команда mouse.send_move(x,y);
Проверял на Вебивизоре яндекса и записал видео для Вас.
https://dropmefiles.com/DHD48
Как я понял, если нужно мышку передвинуть в отображаемую часть страницы, то он ведет от последней координаты.
А если в не отображаемую. то он ведет с верха страницы

Аватара пользователя
bigfozzy
Site Admin
Сообщения: 3048
Зарегистрирован: 28 июл 2008, 17:24
Контактная информация:

Re: Работа с mouse.send_move()

Сообщение bigfozzy » 20 фев 2016, 13:09

Спасибо, сразу посоле праздников займусь. попробуем исправить в следующей версии

Ответить