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

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

 Страниц (5): « 1 2 [3] 4 5 »   

> Без описания
zaxlex
Отправлено: 21 Января, 2014 - 01:03:56
Post Id



Пользователь
Участник


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




функция loadimage(#king[0][0],f1); f1 - путь к файлу, king - массив типа int. И потом идет функция findimage. Такой вопрос - если в массив King уже загружалось изображение и это изображение больше изображения, которое мы загружаем второй раз.То поиск findimage будет работать неверно? или функция loadimage - оставляет в массиве только пикселя нового изображения?
 
 Top
Kibor
Отправлено: 21 Января, 2014 - 01:31:00
Post Id



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


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




loadimage при загрузке изображения в массив загружает полностью все изображение, а неиспользуемую память, которая остается если изображение меньше массива инициализирует -1.
Можно сколько угодно раз перегружать в массив изображения. Главное что бы они не были по размеру больше массива.

 zaxlex пишет:
то есть findimage будет работать неверно?
Все будет верно.

Сколько у Вас изображений надо грузить? Вообще то я не вижу смысла постоянно перед поиском загружать в один и тот же массив разные изображения. loadimage надо вызывать один раз и хранить картинки в разных массивах.

Если проблема в использование своей функции как у Вас (то есть хотите сделать одну функцию которую будете вызывать для разных изображений)
CODE:
int king[400][400];
int x,y;
string s2="C:\Images\chekit.bmp";
n4: if (proverka(s2)==0) {sleep(50);goto n4;}
key("ugcl");
key(13);
function proverka (string f1)
{
loadimage(#king[0][0],f1);
sleep(4000);
if (findimage(1, #king[0][0], 255, #x, #y, 0, 0, 1920, 1080, -1)==0)
{
return 0;
}
else
{
return 1;
}
}

то используйте массивы изображений. Ну и выставьте int king[400][400]; по максимальному. Если он меньше 400 400, то уменьшите его.
CODE:
int king[10][100][200];
int x,y;

loadimage(#king[0][0][0],"C:\Images\chekit.bmp");
loadimage(#king[1][0][0],"C:\Images\chekit1.bmp");
loadimage(#king[2][0][0],"C:\Images\chekit2.bmp");
//..................................................

n4: if (proverka(0)==0) {sleep(50);goto n4;}
key("qqqqqq");

n5: if (proverka(1)==0) {sleep(50);goto n5;}
key("wwwwwwwwwww");

n2: if (proverka(2)==0) {sleep(50);goto n2;}
key("rrrrrrrrrrr");
//..............................


function proverka (int t)
{
return findimage(1, #king[t][0][0], 255, #x, #y, 0, 0, 1920, 1080, -1);
}
 
 Top
zaxlex
Отправлено: 22 Января, 2014 - 18:42:41
Post Id



Пользователь
Участник


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




Здравствуйте, такая проблема - не записывается с буфера обмена в переменную типа string, просто выводит пустой messagebox.
CODE:
sendlanguage("00000409", 0);
sleep(1000);
start("C:\Program Files\Google\Chrome\Application\chrome.exe");
if (f2=="C:\Images\36.bmp") {klikleft(s4); klikleft(k41);}
n5: if (proverka(s1)==1) {sendlanguage("00000409", 0);key("genword.ru/generator/nicknames");}
else {goto n5;}
key(13);
n4: if (proverka(k39)==1) {klikleft(k39);}
else {goto n4;}
klikleft(k40);
sleep(5000);
mousetransfer(LEFT,x-170,y+75,x+70,y+75,0.02);
keydown(17);
key('c');
keyup(17);
klikleft(s3);
writeclipboard(s);
messagebox(s);
 
 Top
Kibor
Отправлено: 22 Января, 2014 - 20:47:23
Post Id



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


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




 zaxlex пишет:
Здравствуйте, такая проблема - не записывается с буфера обмена в переменную типа string, просто выводит пустой messagebox.

 zaxlex пишет:
writeclipboard(s);
messagebox(s);

?

Работа с буфером обмена

 Цитата:
writeclipboard - запись в буфер обмена.
readclipboard - чтение с буфера обмена.

http://kibor-bot.com/forum/topic...41471#1390241471
Соседняя тема.
 
 Top
zaxlex
Отправлено: 24 Января, 2014 - 14:50:25
Post Id



Пользователь
Участник


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




Здравствуйте, благополучно дописал бота, вроде работает, но иногда вылетает ошибка string[87]=k43. При выполнение скрипта у меня встречается нестандартная ситуация
CODE:
n8:klikleft(k28);
klikleft(k29);
sendlanguage("00000409", 0);
key(s);
key(9);
key("ping123");
klikleft(k30);
sleep(3000);
if (proverka(k42)==1) {klikleft(k42); klikleft(43); goto n8;}

и при появлении такой вот ситуации вылетает ошибка, в чем может быть проблема не подскажите?
2-ой вопрос у меня скрипт работает из под виртуалки и при его удачном выполнение перезагружает виртуалку в конце, я бы хотел перестраховаться и при его зависании на какой-нибудь части программы, чтобы он сразу перезагружал виртуалку, как бы это реализовать пограмотней?
 
 Top
Kibor
Отправлено: 24 Января, 2014 - 15:01:44
Post Id



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


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




Не объявлена k43 или перед ней ошибка... ее не видно
Если программа зависла, она не может сделать ничего...
Разве запустить вторую копию Кибор который будет следить за первой и если она вылетела - перегружать. но только если вылетела
что значит вообще зависание??
 
 Top
zaxlex
Отправлено: 25 Января, 2014 - 05:59:46
Post Id



Пользователь
Участник


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




отличная идея по поводу второй версии программы? может код есть? я имею ввиду, что у меня бывает 2-а залага программы, первая - это действительно залаг самой программы, а вторая - это недочеты в алгоритме, которые проявляются в течении работы - я их исправляю, но время от остановки скрипта до моего вмешательства теряется. Виснет - то есть происходит зацикливание в функции klikleft. Было бы неплохо добавить к этой функции условие при котором запускался таймер и если он перевысил 2-е муниты например, то происходил переход по указателю к перезагрузке виртуалки.
 
 Top
Kibor
Отправлено: 25 Января, 2014 - 06:40:58
Post Id



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


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




 zaxlex пишет:
по поводу второй версии программы? может код есть?

Если программа вылетела, то вторая копия Кибор отследит это так:

CODE:
//Запускать после первой
a: if (window("Название окна первой программы")!=0){sleep(200); goto a;}//Указатель на первую

//На этот код попадет если программа первая вылетела
messagebox ("");



Для простоты можно в основную программу вставить в старт кода
CODE:
rename("блаблабала");


После запуска скрипта окно Кибор будет иметь это название.

Во вторую которая следит
CODE:
//Запускать после первой
a: if (window("блаблабала")!=0){sleep(200); goto a;}//Указатель на первую

//На этот код попадет если программа первая вылетела
messagebox ("");



 zaxlex пишет:
2-а залага программы, первая - это действительно залаг самой программы


Подробнее? Если баг - исправлю. Но я не встречал таких багов... Обычно я их быстро исправляю.

 zaxlex пишет:
Виснет - то есть происходит зацикливание в функции klikleft. Было бы неплохо добавить к этой функции условие при котором запускался таймер и если он перевысил 2-е муниты например, то происходил переход по указателю к перезагрузке виртуалки.


Ну этот таймер есть почти в каждом скрипте...

CODE:
function klikleft()
{
int time=gettime();
qwe: if (gettime()-time>12000)
{
//Перегрузи
return;
}
//код
goto qwe;
}
 
 Top
zaxlex
Отправлено: 03 Февраля, 2014 - 07:04:30
Post Id



Пользователь
Участник


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




Программа зависла только раз и больше не повторялось. Сейчас такая ситуация - я переустановил windows и забыл перенести папку с изображениями.Программа у меня работает из под виртуалки, которую я также переустановил. Первая проблема возникла на момент загрузки кибора. http(5) error installation abort. Такая проблема была уже на форуме и вы давали прямую ссылку на кибор - я загрузил по этой ссылке кибор и удачно установил. Кибор работает в windows xp в shadow mode при запущенном shadow defendere. Запускной файл был создан и помещен в автозагрузку. Я столкнулся с совершенно непонятной проблемой. Полностью отредактировав до рабочего состояния я перенес все файлы на флэшку. конец работы программы у меня - перезагрузка виртуалки - т.к она находится в shadow mode - происходит откат изменений, созданных кибором. И при запуске виртуалки происходит опять запуск скрипта и он начинает работать до определенного изображения, которое он не находит,хотя на экране оно присутствует.Если я опять делаю снимок искомого изображения и сохраняю его вместо текущего, то программа начинает работать дальше до следующего изображения,которое не может найти и таких изображений где-то десяток при чем все остальные удачно находятся.Может изображение действительно отличается на незаметные для глаза пикселя, но до переустановки windows на прошлой виртуалке - все работало. При чем я попробывал запустить кибор и найти изображение на котором происходил сбой - не находит. Потом открыл этот bmp файл и опять не находит( не кликает по нему и не завершает работу скрипта) на прошлой виртуалке - находил.Я пробывал отредактировать все проблемные изображения, сохранить все изменения, создать запускной файл, но опять после перезагрузки все доходило до первого проблемного изображения, которое я отредактировал и зацикливание в функции klikleft - так как скрипт не может найти изображение.В чем может быть проблема подскажите пожалуйста, а то я уже не знаю что делать.
 
 Top
Kibor
Отправлено: 03 Февраля, 2014 - 10:40:48
Post Id



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


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




Если не находит - значит отличаются. Попробуйте расширенные findimage.
 
 Top
Страниц (5): « 1 2 [3] 4 5 »
Сейчас эту тему просматривают: 3 (гостей: 3, зарегистрированных: 0)
« Вопросы и решение проблем »


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




Powered by