Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (2): [1] 2 »   

> Без описания
tsaradena
Отправлено: 23 Июня, 2018 - 23:56:32
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 6
Дата рег-ции: Июнь 2018  
Репутация: 0




Добрый день.
Пишу бота под NoxPlayer. Не могу разобраться с работой команд sendmousetransfer и sendkey.

1) sendmousetransfer не работает с настройкой из учебника:
CODE:
sendmousetransfer(LEFT, 50, 340, 50, 150, 0.02, w);

Работает если установить параметр 6 в значение 10 или выше:
CODE:
sendmousetransfer(LEFT, 50, 340, 50, 150, 10, w);

Но при этом происходит прокрутка на несколько экранов, как будто произошел быстрый свайп по экрану.
За что отвечает 6ой параметр и можно ли как-то настроить более плавное перетаскивание мыши?
2) sendkey также как и key вообще не работают.

Помогите разобраться, может кто сталкивался и/или уже решал подобные проблемы?
 
 Top
Dantes3000
Отправлено: 24 Июня, 2018 - 00:05:18
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1480
Дата рег-ции: Июнь 2016  
Репутация: 58




tsaradena , надо полный код сюда. Если в виз редакторе - лучше файл скинуть.
 
 Top
tsaradena
Отправлено: 24 Июня, 2018 - 07:59:35
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 6
Дата рег-ции: Июнь 2018  
Репутация: 0




 Dantes3000 пишет:
tsaradena , надо полный код сюда. Если в виз редакторе - лучше файл скинуть.


Вот в этом коде НЕ работают команды sendmousetransfer и sendkey:
CODE:
win w_nox=window ("NoxPlayer", "Qt5QWindowIcon", -1);
win w_nox_control=window ("QWidgetClassWindow", "Qt5QWindowIcon", w_nox);
sendmousetransfer(LEFT, 50, 340, 50, 200, 0.02, w_nox_control);
pause(500);
sendkey('a', w_nox_control);


Вот в этом коде работают команды sendmouse, sendmousedown, sendmouseup и sendmousemove:
CODE:
win w_nox=window ("NoxPlayer", "Qt5QWindowIcon", -1);
win w_nox_control=window ("QWidgetClassWindow", "Qt5QWindowIcon", w_nox);
sendmousedown(LEFT, 50, 340, w_nox_control);
sendmousemove(LEFT, 50, 200, w_nox_control);
pause(500);
sendmouseup(LEFT, 50, 200, w_nox_control);
pause(500);
sendmouse(LEFT, 50, 340, w_nox_control);


В игре оба кода должны выполнять одно и тоже, но первый на короче. А если еще учесть, что в Nox можно на нажатие клавиш настраивать много действий (скрипты), то код будет на порядок короче.
 
 Top
Dantes3000
Отправлено: 24 Июня, 2018 - 12:22:21
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1480
Дата рег-ции: Июнь 2016  
Репутация: 58




tsaradena , а есть какой-то резон именно в контрол свайп делать? Почему не в окне?
 
 Top
tsaradena
Отправлено: 24 Июня, 2018 - 14:19:07
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 6
Дата рег-ции: Июнь 2018  
Репутация: 0




 Dantes3000 пишет:
tsaradena , а есть какой-то резон именно в контрол свайп делать? Почему не в окне?


Да, как оказалось резона никакого нет, но при этом sendmousetransfer и sendkey все равно не заработали.
Более того по какой-то причине перестала работать команда sendmousemove - ругается на 4ый параметр (т.е. на окно). И не важно окне или в контроле. Код не менял...
 
 Top
Dantes3000
Отправлено: 24 Июня, 2018 - 16:06:16
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1480
Дата рег-ции: Июнь 2016  
Репутация: 58




tsaradena , Может указатель меняется. Попробуй получать его так:
CODE:
win w;
int x, y;
pause(1000);
getmouse(x, y);
w=getwindow(1, x, y); //0 - на окно
 
 Top
tsaradena
Отправлено: 24 Июня, 2018 - 16:24:06
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 6
Дата рег-ции: Июнь 2018  
Репутация: 0




 Dantes3000 пишет:
tsaradena , Может указатель меняется. Попробуй получать его так:
CODE:
win w;
int x, y;
pause(1000);
getmouse(x, y);
w=getwindow(1, x, y); //0 - на окно


Нет, указатель не меняется, по крайней мере предлагаемый вами код всегда возвращает один и тот же указатель. Эти же указатели показывает и Кибор на вкладке Шпион.

Еще добавлю - бот уже много чего умеет, но пока весь код реализовываю на sendmouse и findimage.
В принципе, если разобраться нормально со свайпом, то можно будет реализовать почти всё что захочешь.
Но всегда хочется чего то большего... поэтому вопрос по sendmousetransfer и sendkey остается открыт.

PS: вспомнил почему использую контрол - размер контрола соответствует размеру игры, поэтому проще прописывать клики мыши и готовить картинки для поиска.
 
 Top
Dantes3000
Отправлено: 24 Июня, 2018 - 16:45:41
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1480
Дата рег-ции: Июнь 2016  
Репутация: 58




а через sendmousedown sendmousemove sendmouseup не получится?
 
 Top
Zireael
Отправлено: 24 Июня, 2018 - 17:13:53
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4447
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
Более того по какой-то причине перестала работать команда sendmousemove - ругается на 4ый параметр

Функция принимает 3 параметра.
CODE:
sendmousemove (200, 250, wind) - перемещение мыши в указанные клиентские координаты окна.
 
 Top
tsaradena
Отправлено: 24 Июня, 2018 - 17:33:53
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 6
Дата рег-ции: Июнь 2018  
Репутация: 0




 Dantes3000 пишет:
а через sendmousedown sendmousemove sendmouseup не получится?

Да, получается делать свайпы более медленные, чем в sendmousetransfer.

 Zireael пишет:
Функция принимает 3 параметра.

Спасибо, нашел и поправил ошибку.

Если по sendmousetransfer никаких пояснений нет, то буду писать через sendmousedown sendmousemove sendmouseup...
По sendkey вопрос открыт - не получается передавать нажатия забинденных кнопок.
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 6 (гостей: 6, зарегистрированных: 0)
« Вопросы и решение проблем »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by