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

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

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

> Описание: .Дублирование движений мыши и действий клавиатуры в другом окне
fedor48
Отправлено: 16 Апреля, 2020 - 02:20:26
Post Id



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


Покинул форум
Сообщений всего: 3
Дата рег-ции: Апр. 2020  
Репутация: 0




Доброго времени суток форумчанам. Давно слежу за разработкой кибор, но все никак не было нужды воспользоваться, сейчас появилось свободное время, и задача, которую, мне кажется, может решить кибор. Простите за лирику.

Суть вопроса, можно ли с помощью данной среды сделать дубликатор, то есть из условного окна 1 передавать движения мыши, клики и нажатия клавиш в окно 2,3 и 4. На самом деле скорее даже только окно 2.

Необходимо для старой игры, в теории защиты там никакой, но поскольку игра старая, то и функционала в ней многого, свойственного современным играм, - нет. По сути необходимо что бы персонаж во втором окне полностью повторял движения за окном первым, осложняется тем, что игра от первого лица.

Еще раз повторюсь, можно ли реализовать дублирование всех действий "на лету" из окна 1 в окно 2,3,4 ?

____________
Если не там тему повесил, или некорректный вопрос, заранее извиняюсь.

(Отредактировано автором: 16 Апреля, 2020 - 02:21:22)

 
 Top
Kibor
Отправлено: 16 Апреля, 2020 - 13:06:21
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 8218
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




Можно.
Записал видео


Скрипт
CODE:
win w1=window (-1, "Afx:00000000FF270000:8", window ("Áåçûìÿííûé - Paint", "MSPaintApp", 2, 0, -1, -1, -1));
win w2=window (-1, "Afx:00000000FF270000:8", window ("Áåçûìÿííûé - Paint", "MSPaintApp", 785, 297, -1, -1, -1));

int K=0, X, Y;


enabletimer(0);

loop()
{
if (getkeystate(1)==1)
{
K=1;
while(getkeystate(1)==1)sleep(1);
K=2;
while(K==2)sleep(1);
}
sleep(1);
}


CREATE_TIMER(0, 5)
{
getmouse(X, Y);
X=X-w1.leftclient;
Y=Y-w1.topclient;
if (K==0)sendmousemove(X, Y, w2);
if (K==1)sendmousedown(LEFT, X, Y, w2);
if (K==2){sendmouseup(LEFT, X, Y, w2); K=0;}
}
 
 Top
fedor48
Отправлено: 16 Апреля, 2020 - 16:36:32
Post Id



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


Покинул форум
Сообщений всего: 3
Дата рег-ции: Апр. 2020  
Репутация: 0




Большое спасибо! Очень интересно, и главное понятно, буду пробовать и расширять функционал. Улыбка
 
 Top
fedor48
Отправлено: 16 Апреля, 2020 - 21:00:51
Post Id



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


Покинул форум
Сообщений всего: 3
Дата рег-ции: Апр. 2020  
Репутация: 0




А может быть что sendkey работает, а sendmouse нет?
 
 Top
Zireael
Отправлено: 16 Апреля, 2020 - 21:10:22
Post Id



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


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




 Цитата:
А может быть что sendkey работает, а sendmouse нет?

Может, зависит от приложения.
 
 Top
Arimor
Отправлено: 22 Сентября, 2020 - 12:48:33
Post Id



Пользователь
Мастер


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




А как сделать чтобы дублирование действий было с рандомным движением курсора до конечной точки? Без работы в фоновом режиме?
 
 Top
Zireael
Отправлено: 22 Сентября, 2020 - 13:04:02
Post Id



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


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




 Цитата:
Без работы в фоновом режиме?

Никак. У винды один курсор.
 
 Top
Arimor
Отправлено: 22 Сентября, 2020 - 15:14:58
Post Id



Пользователь
Мастер


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




 Zireael пишет:
 Цитата:
Без работы в фоновом режиме?

Никак. У винды один курсор.
А на линукс два? Или где?

А если по очереди делать повтор? Это наверное уже будет очень сложно сделать? Как я понимаю, нужно где то записывать действия а так же команды на начало и конец записи. Я же в правильном направлении думаю или есть проще решения?


Как рандом делать разобрался. А вот дальше пока сложно.

CODE:

win w1=window (-1, "Afx:00000000FF270000:8", window ("Áåçûìÿííûé - Paint", "MSPaintApp", 2, 0, -1, -1, -1));
win w2=window (-1, "Afx:00000000FF270000:8", window ("Áåçûìÿííûé - Paint", "MSPaintApp", 785, 297, -1, -1, -1));

int K=0, X, Y;

enablerealmouse(10, 15, 10, 10);
enabletimer(0);

loop()
{
if (getkeystate(1)==1)
{
K=1;
while(getkeystate(1)==1)sleep(1);
K=2;
while(K==2)sleep(1);
}
sleep(1);
}


CREATE_TIMER(0, 5)
{
getmouse(X, Y);
X=X-w1.leftclient;
Y=Y-w1.topclient;
if (K==0)mousemove(X, Y, w2);
if (K==1)mousedown(LEFT, X, Y, w2);
if (K==2){mouseup(LEFT, X, Y, w2); K=0;}
}
 
 Top
Azdiev
Отправлено: 05 Декабря, 2020 - 22:36:31
Post Id



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


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




Kibor , как с вами связаться?
 
 Top
konctantin777
Отправлено: 07 Декабря, 2020 - 05:51:04
Post Id



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


Покинул форум
Сообщений всего: 1152
Дата рег-ции: Окт. 2017  
Откуда: Архангельск
Репутация: 6




Хмм.. а как отследить прокрутку колёсика ? + а если следить за кнопками, то можно ли не следить за каждой клавишой, а смотреть что нажата- отжата и какая ?
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 5 (гостей: 5, зарегистрированных: 0)
« Вопросы и решение проблем »


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




Powered by