Страница: 1 |
Страница: 1 |
Вопрос: Анализ картинки
Добавлено: 28.09.10 11:42
Автор вопроса: GlobMaster
Подскажите реально ли такое вообще реализовать на VB:
Есть запущенная на компе программа, в окошке которой есть датчик (типа полосы прогресса выполнения какой-либо операции), который может "заполняться", то есть серая полоса на белом фоне движется в право или уменьшаться (двигаться влево). Так вот нужно следить уменьшается ли заполнение этой "полосы" или увеличивается и в зависимости от этого выполнять различные действия. По сути нужно анализировать картинку на экране.
Ответы
Всего ответов: 11
Номер ответа: 1
Автор ответа:
UnDeAdZak
Вопросов: 80
Ответов: 476
Профиль | | #1
Добавлено: 28.09.10 12:51
нуу, для примера:
1) делаеш скриншот и вырезаеш из него этот скроллбар
2)кароче разбиваеш эту картинку на полосы(как-то так):
и смотриш цвет полосок, начиная от нуля. т.е. допустим если справа цвет полосы = цвет фона, то иди в лево если цвет полосы = цвеб скролла ,то иди к следующей полосе.
как-то так.
Номер ответа: 2
Автор ответа:
GlobMaster
Вопросов: 1
Ответов: 1
Профиль | | #2
Добавлено: 28.09.10 14:24
да это-то понятно, только вот можно ли сделать скриншот выбранной области и определить цвет фона средствами VB?
Номер ответа: 3
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #3
Добавлено: 28.09.10 14:25
если этот датчик - некриворуко написанный компонент, то может найти его по цепочке хендлов и тупо читать VALUE через SEND_MESSAGE, я полагаю так
Номер ответа: 4
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #4
Добавлено: 28.09.10 14:25
а скрин и цвет средствами вб.нет можно.
Номер ответа: 5
Автор ответа:
VbStarter
ICQ: 357911808
Вопросов: 118
Ответов: 1340
Web-сайт:
Профиль | | #5
Добавлено: 28.09.10 15:42
скрин экрана (который юзер видит) SandKeys "ПРИНТСКРИН" или keyboard_event и тп (апи ещё наверое)
Номер ответа: 6
Автор ответа:
VbStarter
ICQ: 357911808
Вопросов: 118
Ответов: 1340
Web-сайт:
Профиль | | #6
Добавлено: 28.09.10 15:43
*sEndkeys
Номер ответа: 7
Автор ответа:
Серёга
ICQ: 262809473
Вопросов: 17
Ответов: 561
Web-сайт:
Профиль | | #7
Добавлено: 28.09.10 17:23
средствами vb2,3,4,5,6 тоже можно.
Номер ответа: 8
Автор ответа:
AWP
ICQ: 345685652
Вопросов: 96
Ответов: 1212
Web-сайт:
Профиль | | #8
Добавлено: 28.09.10 19:38
Скролл бар читать это ладно, я делал бота для игры Судоку на Mail.ru, там текст анализировался.
Номер ответа: 9
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #9
Добавлено: 29.09.10 09:44
ты серьезн сделал бота для судоку? который ищет стандартными методами?
Номер ответа: 10
Автор ответа:
Администратор
ICQ: 278109632
Вопросов: 42
Ответов: 3949
Web-сайт:
Профиль | | #10
Добавлено: 29.09.10 10:34
Если это стандартный прогрессбар, то никакого изврата со скриншотами не нужно. Если же нет, то тоже нет ничего сложного. Вычисляем координаты главного окна программы, там относительные координаты этой полоски. Ну и просто проецируем этот кусок на свой битмап при помощи BitBlt. Ну а там уже провряем цвета.
Номер ответа: 11
Автор ответа:
AWP
ICQ: 345685652
Вопросов: 96
Ответов: 1212
Web-сайт:
Профиль | | #11
Добавлено: 29.09.10 22:34
Ну так и сделал.
Проверяю потом куски картинки, нахожу верхний левый угол цифры и сравниваю с заранее подготовленным шаблоном.
А дальше несколько методов нахождения цифр в клетках и в цикл пока не найдет все или пока не застопориться.
Потом рисует цифры поверх экрана.