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

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

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

> Описание: Робот не находит картинку
SeMiTr
Отправлено: 28 Июня, 2017 - 17:52:34
Post Id



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


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




Мой робот должен выполнять 2 действия в браузере. Кликать элемент, и в появившемся окне (корневом div-е) искать картинку и кликать по ней. С первым действием робот справляется (по крайней мере когда не открыта опция "посмотреть код". В противном случае не срабатывает), а на втором - буксует. Мышь не двигается, и через некоторое время программа закрывается. Версия бота бесплатная. Картинку проверял - она правильная.
Код - вот
CODE:
int col_KIB, ex_KIB, ey_KIB, sum_KIB, x_KIB, y_KIB;
int Image_0_KIB[93][16];

start_();

findimage_(#Image_0_KIB[0][0], 0, 0, 0, 1, 200, 5, 0, -1, 0, 100, 1, 0, 0, ex_KIB, ey_KIB, #sum_KIB, #x_KIB, #y_KIB);



function start_()
{
getdisplay(col_KIB, ex_KIB, ey_KIB);
load_image_();
pause(1000);
}


function findimage_(int #Image, int t, int p1, int p2, int m, int xm, int ym, int p3, int fon, int r, int p, int k, int xs, int ys, int xf, int yf, int#sum, int#x, int#y)
{
int timKIB, sumKIB, xKIB, yKIB;
pause(p1);
sumKIB=0;
if (t!=1) timKIB=gettime();
a: if (r==0 && p==100){sum=findimage(k, #Image[0][0], fon, #x[0], #y[0], xs, ys, xf, yf, -1); if (sum>0) goto e;}
else {sum=findimage(k, #Image[0][0], fon, #x[0], #y[0], xs, ys, xf, yf, r, r, r, r, r, r, p, 1, -1); if (sum>0) goto e;}
if (t==0) return 0;
if (gettime()-timKIB<t){sleep(20); goto a;}
return 0;
e: sumKIB=sum; xKIB=x[0]; yKIB=y[0];
pause(p2);
if (m==1){mouse(LEFT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==2){mouse(MIDDLE, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==3){mouse(RIGHT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==4){mousedown(LEFT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==5){mousedown(MIDDLE, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==6){mousedown(RIGHT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==7){mouseup(LEFT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==8){mouseup(MIDDLE, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==9){mouseup(RIGHT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==10){mousemove(xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
return sumKIB;
}




function load_image_()
{
loadimage (#Image_0_KIB[0][0], "C:\Users\энергия\Documents\Кибор\Image_0.bmp");
}


Р.S. Хотел ещё проиллюстрировать картинками, но к сожалению они не поддерживаются Огорчение
 
 Top
Dantes3000
Отправлено: 28 Июня, 2017 - 21:35:37
Post Id



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


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




Ну так у тебя только поиск и нажатие по картинке. потом выход.
 
 Top
SeMiTr
Отправлено: 29 Июня, 2017 - 13:53:13
Post Id



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


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




CODE:

int Image_0_KIB[93][16];
int Image_1_KIB[19][19];

start_();

findimage_(#Image_0_KIB[0][0], 0, 0, 0, 1, 160, 38, 0, -1, 0, 100, 1, 0, 0, ex_KIB, ey_KIB, #sum_KIB, #x_KIB, #y_KIB);
findimage_(#Image_1_KIB[0][0], 200, 0, 0, 0, 0, 0, 0, -1, 30, 100, 1, 0, 0, ex_KIB, ey_KIB, #sum_KIB, #x_KIB, #y_KIB);



function start_()
{
getdisplay(col_KIB, ex_KIB, ey_KIB);
load_image_();
pause(1000);
}


function findimage_(int #Image, int t, int p1, int p2, int m, int xm, int ym, int p3, int fon, int r, int p, int k, int xs, int ys, int xf, int yf, int#sum, int#x, int#y)
{
int timKIB, sumKIB, xKIB, yKIB;
pause(p1);
sumKIB=0;
if (t!=1) timKIB=gettime();
a: if (r==0 && p==100){sum=findimage(k, #Image[0][0], fon, #x[0], #y[0], xs, ys, xf, yf, -1); if (sum>0) goto e;}
else {sum=findimage(k, #Image[0][0], fon, #x[0], #y[0], xs, ys, xf, yf, r, r, r, r, r, r, p, 1, -1); if (sum>0) goto e;}
if (t==0) return 0;
if (gettime()-timKIB<t){sleep(20); goto a;}
return 0;
e: sumKIB=sum; xKIB=x[0]; yKIB=y[0];
pause(p2);
if (m==1){mouse(LEFT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==2){mouse(MIDDLE, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==3){mouse(RIGHT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==4){mousedown(LEFT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==5){mousedown(MIDDLE, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==6){mousedown(RIGHT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==7){mouseup(LEFT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==8){mouseup(MIDDLE, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==9){mouseup(RIGHT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==10){mousemove(xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
return sumKIB;
}




function load_image_()
{
loadimage (#Image_0_KIB[0][0], "C:\Users\энергия\Documents\Кибор\Image_0.bmp");
loadimage (#Image_1_KIB[0][0], "C:\Users\энергия\Documents\Кибор\I40.bmp");
}



Прошу прощения. Не тот код прислал.

Стоит заметить что сайт блокирует некоторые клики, но как я понял для Кибора это не проблема. Или нет?

(Отредактировано автором: 29 Июня, 2017 - 13:56:27)

 
 Top
Dantes3000
Отправлено: 29 Июня, 2017 - 15:15:21
Post Id



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


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




оох...ну вот опять. 2 поиска картинки и выход из программы. Делай цикл. Смотри гайды на форуме, читай.
 
 Top
SeMiTr
Отправлено: 01 Июля, 2017 - 20:15:02
Post Id



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


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




Мне на данном этапе собственно и надо 2 клика и всё. Если имеется в виду цикл для второго клика, чтобы не пропустить его, то это не помогло. Программа работает, но никак не реагирует на вторую картинку, которую, повторюсь, я проверил. При наведении она немного затемняется, но я поставил не учитывать цвет пикселей и достаточную разбежность цвета. Или опять что-то не то делаю?

(Отредактировано автором: 01 Июля, 2017 - 20:15:50)

 
 Top
Dantes3000
Отправлено: 01 Июля, 2017 - 20:55:47
Post Id



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


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




Может и не достаточную. Я обычно в таких случаях после нахождения еще ставлю клик по координатам, если картинка найдена
(Добавление)
CODE:

int Image_0_KIB[93][16];
int Image_1_KIB[19][19];

start_();

if(findimage_(#Image_0_KIB[0][0], 0, 0, 0, 1, 160, 38, 0, -1, 0, 100, 1, 0, 0, ex_KIB, ey_KIB, #sum_KIB, #x_KIB, #y_KIB)==0) messagebox("не нашел 1");
if(findimage_(#Image_1_KIB[0][0], 200, 0, 0, 0, 0, 0, 0, -1, 30, 100, 1, 0, 0, ex_KIB, ey_KIB, #sum_KIB, #x_KIB, #y_KIB==0) messagebox("не нашел 2");



function start_()
{
getdisplay(col_KIB, ex_KIB, ey_KIB);
load_image_();
pause(1000);
}


function findimage_(int #Image, int t, int p1, int p2, int m, int xm, int ym, int p3, int fon, int r, int p, int k, int xs, int ys, int xf, int yf, int#sum, int#x, int#y)
{
int timKIB, sumKIB, xKIB, yKIB;
pause(p1);
sumKIB=0;
if (t!=1) timKIB=gettime();
a: if (r==0 && p==100){sum=findimage(k, #Image[0][0], fon, #x[0], #y[0], xs, ys, xf, yf, -1); if (sum>0) goto e;}
else {sum=findimage(k, #Image[0][0], fon, #x[0], #y[0], xs, ys, xf, yf, r, r, r, r, r, r, p, 1, -1); if (sum>0) goto e;}
if (t==0) return 0;
if (gettime()-timKIB<t){sleep(20); goto a;}
return 0;
e: sumKIB=sum; xKIB=x[0]; yKIB=y[0];
pause(p2);
if (m==1){mouse(LEFT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==2){mouse(MIDDLE, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==3){mouse(RIGHT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==4){mousedown(LEFT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==5){mousedown(MIDDLE, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==6){mousedown(RIGHT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==7){mouseup(LEFT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==8){mouseup(MIDDLE, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==9){mouseup(RIGHT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==10){mousemove(xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
return sumKIB;
}




function load_image_()
{
loadimage (#Image_0_KIB[0][0], "C:\Users\энергия\Documents\Кибор\Image_0.bmp");
loadimage (#Image_1_KIB[0][0], "C:\Users\энергия\Documents\Кибор\I40.bmp");
}

(Добавление)
и перед нахождением желательно ставь паузу 300 мсек, а то бывает не обрабатывается нажатие. Но не делай так, если изображение двигается
 
 Top
NoNseNs
Отправлено: 03 Июля, 2017 - 16:09:20
Post Id



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


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




Здравствуйте, подскажите как настроить разбежность цветов. Есть картинка с кнопкой и светло серым фоном, и есть картинка с такой же кнопкой, но белым фоном. КИбер находит картинки и выполняет действия (нажимает кнопку), но мне нужно, что бы на кнопку с светло серым фоном он не реагировал, а выбирал кнопку только с белым фоном. (фон расположен не на кнопках)
 
 Top
SeMiTr
Отправлено: 04 Июля, 2017 - 12:44:36
Post Id



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


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




Я тупой. Надо было просто галочку поставить на клике.
 NoNseNs пишет:
Здравствуйте, подскажите как настроить разбежность цветов. Есть картинка с кнопкой и светло серым фоном, и есть картинка с такой же кнопкой, но белым фоном. КИбер находит картинки и выполняет действия (нажимает кнопку), но мне нужно, что бы на кнопку с светло серым фоном он не реагировал, а выбирал кнопку только с белым фоном. (фон расположен не на кнопках)

Как я понимаю разбежность цвета тут не причём. Попробую выделить кнопку и часть фона, и кликать не в угол (+X=0 +Y=0), а со смещением. К примеру (+X=15 +Y=15)
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 2 (гостей: 2, зарегистрированных: 0)
« Вопросы и решение проблем »


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




Powered by