Автор Тема: [Мышь, клавиатура] Функция для поиска кнопок  (Прочитано 129 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн the_gt99 [?]

  • Сообщений: 17
  • Репутация: -1
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Версия AutoIt: 3.

Описание:
Всем привет, недавно появилась задача сделать функцию для поиска любого объекта(в моем случае кнопки) на экране.
P.S. да, я не совсем тупой, искать приходилось именно по пикселям!

Логика следующая.
В функцию подается 4 параметра (colour_before,x,y,colour_after).
Цвет который ищем, как только его находим, берем координаты этого пикселя, смещаемся на заданные x,y и смотрим цвет уже в в новом месте, если цвет который мы взяли совпадает с colour_after, значит наша кнопка найдена , иначе уменьшаем границы  pixel_search.

Вот реализация этой функции:
Код: AutoIt [Выделить]
Func serchButton($color,$pix2x,$pix2y,$pix2color)
$y = 0
    while 1
            $pixel = PixelSearch(0,$y,1023,767,$color ,"","","Game_name")
            If Not @error Then
                    $var = PixelGetColor($pixel[0]+$pix2x, $pixel[1]+$pix2y, "Game_name")
                    $var =  Hex($var, 6)
                    if $var == $pix2color Then
                        $return = '1|'&$pixel[0]+$pix2x&'|'&$pixel[1]+$pix2y
                         ExitLoop
                    else
                        $y = $pixel[1]+1
                    endif
            else
                $return = '-1|0|0'
                 ExitLoop
            Endif
    WEnd
return $return
EndFunc


Проблема оказалась в том, что на разных ПК в одной и той же игре, с одинаковыми настройками графики, в одном и том же месте - немного разные оттенки.

Вопрос:

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


Для тех кто не понял и захочет предложить, тупо добавить 6-ой(shade-variation) параметр к функции PixelSearch:

Русское сообщество AutoIt

[Мышь, клавиатура] Функция для поиска кнопок
« Отправлен: Май 21, 2018, 14:48:55 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
1 Ответов
8388 Просмотров
Последний ответ Январь 05, 2010, 21:11:49
от snoitaleR
15 Ответов
7563 Просмотров
Последний ответ Январь 23, 2012, 00:40:15
от CreatoR
2 Ответов
3232 Просмотров
Последний ответ Апрель 09, 2014, 15:00:22
от DeMo(azov)
0 Ответов
839 Просмотров
Последний ответ Июль 31, 2014, 18:30:02
от madmasles
4 Ответов
2135 Просмотров
Последний ответ Август 03, 2014, 03:27:24
от Dima1337
5 Ответов
1417 Просмотров
Последний ответ Февраль 28, 2015, 19:45:28
от AndreySeVeN
0 Ответов
1235 Просмотров
Последний ответ Март 15, 2015, 00:16:24
от mdamda
6 Ответов
2026 Просмотров
Последний ответ Декабрь 08, 2015, 13:12:33
от Yura
2 Ответов
1234 Просмотров
Последний ответ Январь 10, 2016, 21:03:23
от Alofa
9 Ответов
287 Просмотров
Последний ответ Май 21, 2018, 16:36:39
от the_gt99