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

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

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

> Описание: Дублирование действий
Kibor
Отправлено: 30 Июля, 2024 - 10:34:28
Post Id



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


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




Задали вопрос, как дублировать мышь и клавиатуру во втором окне работая с первым.

Видео я снимал
Как дублировать работу с мышью и клавиатурой в другом окне


Привожу еще код, который сейчас набросал
CODE:
//Указатели на контролы двух блокнотов (учитывая их позиции на экране)
win w1=window (-1, "Edit", window (-1, "Notepad", 115, 70, -1, -1, -1));
win w2=window (-1, "Edit", window (-1, "Notepad", 136, 591, -1, -1, -1));
if (w1==0 || w2==0) messagebox ("Не верные указатели");

int k;
int t=0;//Переменная которая не дает выполнять серию нажатий при однократном нажатие
int x, y;
loop()
{
k=0;
for (int n=0; n<256; n++)
{
k=getkeystate(n);//Если накая то кнопка нажата
if (k==1)//Нажатие есть
{
if (t==0)//Оно первое
{
if (n<5)//Мышь
{
getmouse(x, y, w1);//Узнаем координаты мыши в момент клика
if (n==1)sendmouse (LEFT, x, y, w2);
if (n==2)sendmouse (RIGHT, x, y, w2);
if (n==4)sendmouse (MIDDLE, x, y, w2);
}
else sendkeydown(n, w2);//Клавиатура
t=1;
break;
}
else break;
}
}
if (k==0) t=0;
sleep(10);
}
 
 Top
WeWetko
Отправлено: 31 Июля, 2024 - 11:26:30
Post Id



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


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




Всем доброго дня, попытался добавить боковую клавишу для мыши.
Поменял if (n<5) на if (n<6), а так же добавил строчку
CODE:
if (n==5)sendmouse (FORWARD, x, y, w2);

Само по себе работает все, однако как только нажимаю ту самую клавишу выдает такую ошибку.
[img](для просмотра ссылки Вам необходимо авторизоваться) /img]
Код клавиши указан верно однако на счет константы не уверен, я попробовал множество разных вариантов правда все зря,
на сайте кибор в таблице кодов и констант клавиш для мыши всего 3 кода на три кнопки: LEFT, RIGHT, MIDDLE.
Будьте добры, подскажите кто нибудь другие кнопки.
 
 Top
Zireael
Отправлено: 31 Июля, 2024 - 12:21:25
Post Id



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


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




CODE:
#define XBUTTON1 0x0001
#define XBUTTON2 0x0002

CODE:
// нажать боковую кнопку мыши
sendmessage(WM_XBUTTONDOWN, XBUTTON2*65536, 0, w2);
sleep(10);
sendmessage(WM_XBUTTONUP, XBUTTON2*65536, 0, w2);
 
 Top
Kibor
Отправлено: 31 Июля, 2024 - 12:29:54
Post Id



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


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




 WeWetko пишет:
FORWARD

Такой константы нет в Кибор и какой ее код я не знаю.
sendmouse может работать только с LEFT RIGHT MIDDLE

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

Ниже приведенный код реализует это.
Тут можно добавить кнопки какие угодно самому.

CODE:
//Указатели на контролы двух блокнотов (учитывая их позиции на экране)
win w1=window (-1, "Edit", window (-1, "Notepad", 115, 70, -1, -1, -1));
win w2=window (-1, "Edit", window (-1, "Notepad", 136, 591, -1, -1, -1));
if (w1==0 || w2==0) messagebox ("Не верные указатели");

int k;
int t=0;//Переменная которая не дает выполнять серию нажатий при однократном нажатие
int x, y;
loop()
{
k=0;
for (int n=0; n<256; n++)
{
k=getkeystate(n);//Если накая то кнопка нажата
if (k==1)//Нажатие есть
{
if (t==0)//Оно первое
{
if (n<5)//Мышь
{
getmouse(x, y, w1);//Узнаем координаты мыши в момент клика
if (n==1)SendMouse (1, x, y, w2);//LEFT
if (n==2)SendMouse (2, x, y, w2);//RIGHT
if (n==4)SendMouse (4, x, y, w2);//MIDDLE
//Тут добавить нужный блок
}
else sendkeydown(n, w2);//Клавиатура
t=1;
break;
}
else break;
}
}
if (k==0) t=0;
sleep(10);
}


function SendMouse(int ConstM, int x, int y, win w)
{
int lParam = makelparam(x, y);
postmessage(WM_MOUSEMOVE, 0, lParam, w);
if (ConstM==1)//LEFT
{
postmessage(WM_LBUTTONDOWN, ConstM, lParam, w);
sleep(50);
postmessage(WM_LBUTTONUP, 0, lParam, w);
}
if (ConstM==2)//RIGHT
{
postmessage(WM_RBUTTONDOWN, ConstM, lParam, w);
sleep(50);
postmessage(WM_RBUTTONUP, 0, lParam, w);
}
if (ConstM==4)//MIDDLE
{
postmessage(WM_MBUTTONDOWN, ConstM, lParam, w);
sleep(50);
postmessage(WM_MBUTTONUP, 0, lParam, w);
}
//Тут добавить нужный блок
}
 
 Top
WeWetko
Отправлено: 31 Июля, 2024 - 13:20:44
Post Id



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


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




Даже ничего не добавляя попытался запустить, вылетает с ошибкой
[img](для просмотра ссылки Вам необходимо авторизоваться) /img]
 
 Top
Kibor
Отправлено: 31 Июля, 2024 - 13:33:49
Post Id



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


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




Кибор должен обновиться.
Перезапустите его.
Если не обновляется запустите программу Update
 
 Top
WeWetko
Отправлено: 31 Июля, 2024 - 13:49:41
Post Id



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


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




 Kibor пишет:
Кибор должен обновиться.
Перезапустите его.
Если не обновляется запустите программу Update

Огромное вам спасибо за помощь, все работает, как нибудь куплю подписку!
 
 Top
Rainn
Отправлено: 24 Сентября, 2024 - 10:23:00
Post Id



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


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




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

//Указатели на контролы двух блокнотов (учитывая их позиции на экране)
win w1=window (-1, "Edit", window (-1, "Notepad", 115, 70, -1, -1, -1));
win w2=window (-1, "Edit", window (-1, "Notepad", 136, 591, -1, -1, -1));

Пробовал запускать скрипт как в видео с Paint, названия окон совпадают, дублирования действий не происходит.
В дальнейшем хочу дублировать действия на окнах la2 и здесь вопрос, будет ли работать скрипт данного рода с Arduino? Надо ли что-то менять?
Спасибо.
 
 Top
Zireael
Отправлено: 24 Сентября, 2024 - 11:38:20
Post Id



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


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




 Цитата:
где можно посмотреть за что отвечают эти параметры?

Функции для идентификации окон и контролов.
 Цитата:
будет ли работать скрипт данного рода с Arduino?

Нет. Ардуино выполняет нажатия также как вы с клавиатуры или мышки, т. е. для активного окна.
 
 Top
Rainn
Отправлено: 24 Сентября, 2024 - 11:54:06
Post Id



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


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




 Zireael пишет:
 Цитата:
где можно посмотреть за что отвечают эти параметры?

Функции для идентификации окон и контролов.
 Цитата:
будет ли работать скрипт данного рода с Arduino?

Нет. Ардуино выполняет нажатия также как вы с клавиатуры или мышки, т. е. для активного окна.

А если с модом на активное окно. ??? Непонял! Он делает все запущенные окна активными..
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Вопросы и решение проблем »


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




Powered by