darow |
Отправлено: 07 Января, 2014 - 15:24:10
|
Наблюдатель
Покинул форум
Сообщений всего: 45
Дата рег-ции: Янв. 2014
Откуда: Украина
Репутация: 0
|
так начинаю пробовать по указанным Вами примерам... и сразу первый вопрос: если кибору надо искать изображение на странице, то значит ему надо сравнивать с каким-то скрином-эталоном... чем лучше всего данный скрин-эталон делать? и где их сладывать лучше всего?
(Добавление)
извините, уже нашел разжевано написано:(для просмотра ссылки Вам необходимо авторизоваться) как готовить картинки
(Добавление)
ну вот попробовал первый свой скрипт создать на основе примеров на странице яндекса найти картинку кнопки "найти", вот что у меня вышло:
int Image[74][33];
loadimage (#Image[0][0], "C:\Users\Àðñåíèé\Desktop\Image_0_nayti.bmp.bmp"
win wind=window ("ßíäåêñ - Mozilla Firefox", "MozillaWindowClass", -1);
int x[1], y[1];
findimage(1, #Image[0][0], #x[0], #y[0], 0, 0, wind.widthclient, wind.heightclient, wind);
(упс, сюда скопировал с кибора скрипт, и русские слова превратились в кракозябру... русский шрифт не мешает кибору?)
нажал кнопку пуск и вот что мне выдало: (для просмотра ссылки Вам необходимо авторизоваться) в чем ошибка? или я что-то не дописал?
(Добавление)
так внес исправление согласно примера, надо исключение цвета пикселя(16777215) вернуть:
int Image[74][33];
loadimage (#Image[0][0], "C:\Users\Арсений\Desktop\Image_0_nayti.bmp.bmp"
win wind=window ("Яндекс - Mozilla Firefox", "MozillaWindowClass", -1);
int x[1], y[1];
findimage(1, #Image[0][0], 16777215, #x[0], #y[0], 0, 0, wind.widthclient, wind.heightclient, wind);
(Добавление)
с последним вариантом ошибки не выскакивают, Кибор свернулся и вновь развернулся... а вот результат его мыслей я так и не понял... куда и каким образом он выдал что нашел картинку? |
|
|
Kibor |
Отправлено: 07 Января, 2014 - 17:43:35
|
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
В первом случае ошибка - пропущен параметр фонового цвета.
Второй рабочий.
darow пишет: int Image[74][33];
loadimage (#Image[0][0], "C:\Users\Арсений\Deskto\Image_0_nayti.bmp");
win wind=window ("Яндекс - Mozilla Firefox", "MozillaWindowClass", -1);
int x[1], y[1];
findimage(1, #Image[0][0], 16777215, #x[0], #y[0], 0, 0, wind.widthclient, wind.heightclient, wind);
Если функцией findimage нашлось изображение, в переменные x[0], y[0] запишутся координаты найденного изображения.
Теперь такой код:
mousemove (x[0], y[0], wind);
Переместит мышь на это изображение. левый и верхний угол.
Правильнее такой код так сделать:
darow пишет: int Image[74][33];
loadimage (#Image[0][0], "C:\Users\Арсений\Deskto\Image_0_nayti.bmp");
win wind=window ("Яндекс - Mozilla Firefox", "MozillaWindowClass", -1);
int x, y;
if (findimage(1, #Image[0][0], 16777215, #x, #y, 0, 0, wind.widthclient, wind.heightclient, wind)==1)mousemove (x, y, wind);
else messagebox ("Не нашли."); |
|
|
Kibor |
Отправлено: 07 Января, 2014 - 18:04:07
|
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Не нашли файл рисунка по этому пути. Проверьте путь к картинке. Нет такой картинки по этому пути.
Для простоты сохраните на диск C.
Можно любую картинку . Даже 1 на 1.
Все равно в окне или нет. Главное что бы указатель был правильный именно на эту страницу и изображение видно было.
Для начала просто попробуйте работать с экранными координатами без указателей:
CODE:int Image[74][33];
loadimage (#Image[0][0], "C:\Image_0.bmp");
int color, xe, ye;
getdisplay(color, xe, ye);//Разрешение экрана записать в xe, ye
int x, y;
if (findimage(1, #Image[0][0], 16777215, #x, #y, 0, 0, xe, ye, -1)==1)mousemove (x, y);
else messagebox ("Не нашли.");
(Добавление)
Не находит потому что не находит.
Что означает черный фон в картинке?
Посмотрите эту тему. Там немного сложнее, так как расширенная findimage, но есть код и изображение готовое. http://kibor-bot.com/forum/topic...um=1&topic=8 |
|
|
|