Что нового

ImageSearch не ищет по картинке, хотя делаю все правильно

Art4D

Новичок
Сообщения
22
Репутация
3
В общем есть udf ImageSearch, судя по его описанию и старым постам (http://autoit-script.ru/index.php?topic=21444.msg126234#msg126234), оно имеет возможность искать картинку в картинке.
Вот код:
Код:
#include <WinAPI.au3>
#include <GDIPlus.au3>
#include <ImageSearch.au3>

_GDIPlus_Startup()

$HBMP = _Load_img("2.bmp")

Local $x1 = 0, $y1 = 0

    $result = _ImageSearch("12345.bmp", 1, $x1, $y1, 20, $HBMP)
    if $result=1 Then
        ConsoleWrite("Нашли картинку" & @CRLF)
	 Else
		ConsoleWrite("Не найдена" & @CRLF)
		EndIf


Func _Load_img($img_name)
    $hImage =_GDIPlus_ImageLoadFromFile(@ScriptDir & $img_name)
    $hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
    _GDIPlus_ImageDispose($hImage)
    Return $hBitmap
EndFunc


В теории, загружаем картинку 2.bmp, в которой мы будем искать 12345.bmp.
Скрипт должен выдать сообщение о нахождении, но ImageSearch не находит, что странно. Т.к. если оставить искомую картинку (12345.bmp) и поставить $HBMP=0 (тогда изображение берется с экрана), то все сразу находит.

Может кто видит у меня ошибку тут или кто-нибудь проверит скрипт у себя, я уже испробовал все dll-ки 32/64 бит, посмотрел разные ImageSearch.au3, не могу понять почему не работает. Помогите)

Скрипт и все остальное в архиве по ссылке. https://yadi.sk/d/TpHfIbhk3Rj3PM
DLL должно храниться в папке со скриптом.
 

eralex

Знающий
Сообщения
63
Репутация
5
Вот тут
Код:
$hImage =_GDIPlus_ImageLoadFromFile(@ScriptDir & $img_name)

помойму слэша не хватает.
Должно быть типа токого
Код:
$hBmp = _GDIPlus_BitmapCreateFromFile(@ScriptDir&'\2.bmp')
 
Автор
A

Art4D

Новичок
Сообщения
22
Репутация
3
eralex, да, слэш пропустил я.
Но как оказалось проблема была в самой Dll, скачал вот отсюда http://autoit-script.ru/index.php?topic=21444.msg126234#msg126234 и заработало все.

Тем, кто будет искать, как совершить поиск изображения в фоновом/неактивном (НЕ свернутом) окне:

Вот РАБОЧИЙ скрипт, который любезно, выложил Yura: http://autoit-script.ru/index.php?topic=21444.msg126234#msg126234
По титлу находит окно (активное/неактивное), делает скрин окна, и по скрину ищет координаты, с помощью которых уже в фоновом режиме можно будет отправить клики.

Инклуд и библиотеку, с которыми работает данный скрипт прикрепляю ниже.
ImageSearch.au3 - в папку с инклудами ( станд. путь C:\Program Files (x86)\AutoIt3\Include )
ImageSearchDLL.dll - в папку со скриптом
 

Вложения

  • ImageSearchFon.rar
    37.1 КБ · Просмотры: 79
Верх