Тема: AHK: Поиск из нескольких изображений и "запоминание" данных.
Вопрос, вероятно, банальный, но в поиске не нашел.
Нужно проверить таблицу 12*5 ячеек, и в случае совпадения с одним из изображений (их порядка 30 разных) совершить действие. Так же нужно ассоциировать нахождение с каким-либо параметром (условно в результате должно получится, что при нахождение нужных изображений происходит клик мыши, а в итоге выводится таблица - найдено 4 совпадений X, 5 Y и 3 Z.
Сейчас скрипт на этом этапе
^2::
HolderCellHeightMin := 1272 ;начальная точка по горизонтали
HolderCellHeightMax := HolderCellHeightMin + 52.5 ;конечная точка по горизонтали
CurrencyCell := 0 ;количество нахождений
Loop, 12 ;цикл на 12 ячеек по горизонтали
{
HolderCellWidthMin := 588 ;начальная точка по вертикали
HolderCellWidthMax := HolderCellWidthMin + 52.5 ;конечная точка по вертикали
ImageSearch, FoundX, FoundY, HolderCellHeightMin, HolderCellWidthMin, HolderCellHeightMax, HolderCellWidthMax, *75 chaos.tif ;ищем в ячейке 52*52 картинку, координаты даются при нахождении
/*
if Errorlevel = 0
{
CurrencyCell := CurrencyCell + 1
MsgBox %CurrencyCell%, %HolderCellHeightMax%
}
*/
Loop, 5
{
ImageSearch, FoundX, FoundY, HolderCellHeightMin, HolderCellWidthMin, HolderCellHeightMax, HolderCellWidthMax, *125 chaos.tif
if Errorlevel = 0
{
CurrencyCell := CurrencyCell + 1
; MsgBox координаты ячейки по вертикали %HolderCellWidthMin%, %HolderCellWidthMax%
}
HolderCellWidthMin := HolderCellWidthMin + 52.5
HolderCellWidthMax := HolderCellWidthMax + 52.5
}
HolderCellHeightMin := HolderCellHeightMin + 52.5 ;начальную точку по горизонтали переводим на следующую ячейку
HolderCellHeightMax := HolderCellHeightMax + 52.5 ;конечную точку по горизонтали переводим на следующую ячейку
}
MsgBox координаты ячейки по горизонтали %HolderCellHeightMin%, %HolderCellHeightMax%. Число совпадений %CurrencyCell%.
Return
Вероятно, что все это нужно загнать в функцию с подставлением изображения в качестве переменной (не знаю как), но учитывая, что 1 картинку скрипт обрабатывает порядка секунды, увеличение этого количества до 30 даст соответствующее количество секунд на выполнение. А хотелось бы уложиться в 3-5 секунд.
Кроме того, мне совершенно не нравится объемность кода, учитывая, что действия простые и наверяка можно как то сократить.
Заранее спасибо.