Что нового

[Мышь, клавиатура] Вопрос по dll для картинок и бот картиночник

martiniFresh

Новичок
Сообщения
10
Репутация
1
Здравствуйте.
Занимаюсь auitoit всего 3 день по этому пожалуйста не пинать.
Подскажите пожалуйста где взять dll для поиска по картинкам?
Я слышала, что нужна ImageSearch.dll, но а где её взять или как сделать я не в курсе.
Пытаюсь сделать бота для автоматизации ответа в ICQ.
Задача такая:
Бот сидит в трее и следит за некой областью в этом же трее, если в этой области появляется картинка "Вам пришло новое сообщение" бот имитируя нажатие мыши пользователем открывает окно сообщения и пишет некий текст в поле для ввода сообщения. Простенький и не очень нужный бот, но мне он нужен для обучения AutoIt. Вот что я написала:
Код:
$coord = PixelSearch( 1259, 743, 1274, 759, 0x905C20, 10 )
If Not @error Then
    MsgBox(0, "X and Y are:", $coord[0] & "," & $coord[1])
	MouseMove($coord[0], $coord[1], 0)
	MouseClick("left")
   MouseClick("left")
EndIf

Но тут он не пишет ещё область для сообщения,а просто ищет заданный цвет в области координат и щёлкает на него 2 раза. :-[
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Есть смысл просто привязаться к цвету окна "вам пришло сообщение" с помощью PixelSearch, использовать ImageSearch для этого - что ядерными ракетами стрелять по комарам.
 

Whited

Знающий
Сообщения
79
Репутация
10
Belfigor [?]
Есть смысл просто привязаться к цвету окна "вам пришло сообщение" с помощью PixelSearch, использовать ImageSearch для этого - что ядерными ракетами стрелять по комарам.

Можно даже в определенных координатах брать цвет и сравнивать с цветом окошка сообщения.Вообще обойтись даже без PixelSearch
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Whited сказал(а):
Можно даже в определенных координатах брать цвет и сравнивать с цветом окошка сообщения.Вообще обойтись даже без PixelSearch
Если ты про PixelGetColor, советую почитать раздел ботоводов. Где-то там ясно и доходчиво описывалось почему так делать не надо и насколько PixelSearch лучше подходит для распознавания графики нежели PixelGetColor.


Добавлено:
Сообщение автоматически объединено:

Хотя в принципе многим для осознания какой-либо проблемы не достаточно чужого опыта и необходимо лично наступить на какие-нибудь грабли. Поэтому да, лучше использовать PixelGetColor
 

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
А зачем вообще так работать с ICQ?
Есть ведь и более адекватные методы...
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Может это поможет:
http://autoit-script.ru/index.php/topic,788.0.html
 

Whited

Знающий
Сообщения
79
Репутация
10
Belfigor [?]
Если ты про PixelGetColor, советую почитать раздел ботоводов. Где-то там ясно и доходчиво описывалось почему так делать не надо и насколько PixelSearch лучше подходит для распознавания графики нежели PixelGetColor.

Здесь задача настолько примитивная, что использовать мощности не имеет смысла.
 
Автор
M

martiniFresh

Новичок
Сообщения
10
Репутация
1
Спасибо большое всем кто откликнулся. Я уже разобралась вроде немного.) А про маленькие задачи... помаленьку мёда больше хватит... Посмаковать можно.) Я же говорила, что на этом я пытаюсь учится, осваиваю функции и их применение.
Кстати новый вопрос появился в ходе дела, думаю он так же подойдёт к данной теме, чтоб новую не создавать.)
Имеется часть кода:
Код:
DIM $MOBLIST[3][4]=[["Изувер Дейдри [20]", [color=red]5182733[/color], 1, 20],["Грабитель Синра [6]", [color=red]9944211[/color], 1, 6],["Тенестраж шпион [13]", [color=red]1323334[/color], 1, 13]

Что в нём вот эти значения - 5182733, 9944211, 1323334?
Я так предполагаю это как то связано с цветовой схемой. Но как мне получить допустим свою схему, если я всё верно понимаю? Или это что то другое?
Сразу скажу, да это часть из кода бота для онлайн браузерки Драконы от которого мне случайно попался исходник в интернете. Решила по разбираться.
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Вероятнее всего это Dec значения цвета которые по дефолту возвращает команда PixelGetColor. Чтобы привести это значение в удобочитаемый вид нужно использовать команду Hex. А если просто тупо не полениться и открыть справку то там можно даже и пример увидеть:
Код:
$var = PixelGetColor( 10 , 100 )
MsgBox(0,"The decimal color is", $var)
MsgBox(0,"The hex color is", Hex($var, 6))
 
Автор
M

martiniFresh

Новичок
Сообщения
10
Репутация
1
Короче не поняла как цитировать:
[Цитата]Вероятнее всего это Dec значения цвета которые по дефолту возвращает команда PixelGetColor. Чтобы привести это значение в удобочитаемый вид нужно использовать команду Hex. А если просто тупо не полениться и открыть справку то там можно даже и пример увидеть:
Код: AutoIt [Выделить]
Код:
$var = PixelGetColor( 10 , 100 )
MsgBox(0,"The decimal color is", $var)
MsgBox(0,"The hex color is", Hex($var, 6))
[/Цитата]

Спасибо, а как мне допустим в этот пример задать переменную? В твоём примере и в справке $var задаётся по координатам 10, 100 Верно?
А мне бы хотелось чтоб цвет брался из непосредственно Dim если это возможно - [["Изувер Дейдри [20]", 5182733, 1, 20],["Грабитель Синра [6]", 9944211, 1, 6],... И посмотрев игру увидела что эти монстры разных цветов. Объясните пожалуйста доходчевей? И про какую именно справку вы говорили? http://autoit-script.ru/autoit3_docs/functions/PixelGetColor.htm Это?
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Да про неё. Эта команда получает цвет в заданной точке, записать цвет в нее заранее нельзя. В переменную к которой применяется команда по результату будет записан полученный цвет.
 
Автор
M

martiniFresh

Новичок
Сообщения
10
Репутация
1
Да про неё. Эта команда получает цвет в заданной точке, записать цвет в нее заранее нельзя. В переменную к которой применяется команда по результату будет записан полученный цвет.
А как на счёт того что в игре эти самые монстры разного цвета и одинаковый цвет пикселя может быть у многих монстров, как тогда бот решает то это или нет? Я думала что это реализуется по средством картинок. Кстати в том боте ещё и есть библиотека ImageSearch может уточнение как то через неё происходит?
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Откуда мне знать, я ту игру в глаза не видел, реализовать поиск можно по разному.
 
Верх