Что нового

Выдает ошибку при запуске скрипта

st1ck_mAn

Новичок
Сообщения
11
Репутация
0
собственно в скрипте юзается вот такой код:
$left='0'
$top='0'
$right='1280'
$bottom='1024'
$color='0xC0CF31'
$pos = PixelSearch ( $left, $top, $right, $bottom, $color)
MouseClick("primary", $pos[0], $pos[1])
и при выполнении (в самом AutoIt) вылетает такая вот ошибка:
bot2.au3 (11) : ==> Subscript used with non-Array variable.:

Что-то связанное с массивом, прошу объяснить что надо сделать.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
964
Автор
S

st1ck_mAn

Новичок
Сообщения
11
Репутация
0
Спасибо!
Изменил на $Array, вроде бы работает, даже в .exe
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
Garrett
Вроде как массив. Из справки (старо-русской):
PixelSearch
Возвращаемое значение
Массив из двух членов, указывающих (x,y) координаты найденного пиксела.

Скорее всего надо проверку массива прикрутить. Эта ошибка может возникнуть и в том случае, если если в функция PixelSearch ничего не получит, и в массив ничего не запишется.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
623

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
Ну, вот
Этот же код, только $color='0x000000'
Код:
$left='0'
$top='0'
$right='1280'
$bottom='1024'
$color='0x000000'
$pos = PixelSearch ( $left, $top, $right, $bottom, $color) 
MouseClick("primary", $pos[0], $pos[1])
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
964
st1ck_mAn [?]
Изменил на $Array, вроде бы работает, даже в .exe
Чудеса, да и только! :laugh: Да изменяйте имя переменной, как вам угодно, если PixelSearch не нашёл pixel заданного цвета, то он не возвращает массив. Autoit поэтому и говорит вам что переменная $pos^ ERROR не является массивом, и даже галочкой ^ указывает вам на позицию в коде, где он столкнулся с проблемой!!!
Вы же к $pos обратились как к массиву, а она оказалась Number.

Но что такого сложного, прочитать вдумчиво справку! Ребята вы меня удивляете :shok:

PixelSearch
- в случае успеха возвращает массив с координатами первого найденного pixel`я Array[0] = x, Array[1] = y
- в случае провала возвращает 0 и устанавливает макрос @error в значение 1

Yuriy [?]
Вроде как массив.
В случае успеха! ;)

Скорее всего надо проверку массива прикрутить.
Можно и так, всё зависит от задачи.
 
Верх