Пред история: Понадобилось сделать кликер...
Есть программа, в которой работает пользователь, и задача у него формировать отчеты по куче позиций.
Алгоритм - поиск фрагмента изображения, далее выбор и затем нажать кнопку "сформировать отчет" дождаться его формирования (на экране всплывает уведомление, держится пару секунд и исчезает). В общем - программа работает до тех пор, пока не нажимаешь сформировать отчет. Прогонял ее без отчета - прокликивает все менюшки, подставляет все нужные значения, но как только включаю формирование отчетов - ожидает появления уведомления (уведомлениеможет появиться и через 5 секунд и через 5 минут в зависимости от объема выборки и загрузки канала связи) и прождав 115 - 120 секунд вылетатет с ошибкой:
BmpSearch.au3 (31) :==> Variable must be of type "Object".
Local $iRowInc = ($tSizeSource.X - $tSizeFind.X) * 4
Local $iRowInc = ($tSizeSource^ ERROR
Для контроля уже и счетчик поставил, ошибка появляется всегда (6 раз прогонял) на 244 вызове процедуры поиска и всегда ругается на эту переменную. Поправил код процедуры каждый раз перед присвоением выводя на консоль текущий порядковый номер вызова процедуры поиска, и значение переменных... Так вот во всех случаях переменная $tSizeSource.X возвращает текущее разрешение экрана по оси Х (1920). При 244 вызове ругается уже в точке вывода переменной на консоль. То есть получается при 244 вызове в переменную попадает какая то хрень возвращаемая процедурой _WinAPI_GetBitmapDimension($hSource). Переменная $hSource при вызове всегда разная, не думаю, что проблема в ней. Можно конечно перелопатить BmpSearch.au3 включив его в программу, и вызывать функцию _WinAPI_GetBitmapDimension($hSource) один раз за запуск - сохраняя значение разрешения экрана, но как то это не правильно. Функция должна выполняться каждый раз возвращая стабильное значение, если на 244 раз она выдает хрень - нужно править функцию.
Если кто сталкивался - как победили?
***
Добавлю к грехам функции...
Начиная с 117 вызова функция возвращает странные значения найденных координат картинки.
Например координаты в 116 запуске поиска возвращаются координаты 990х187, в 117 запуске поиска той же картинки координаты уже 94х559428
При попытке поставить курсор на данную область - он улетает к верхней границе экрана, и там выполняется клик.
Буду пробовать BmpSearchEx.
Есть программа, в которой работает пользователь, и задача у него формировать отчеты по куче позиций.
Алгоритм - поиск фрагмента изображения, далее выбор и затем нажать кнопку "сформировать отчет" дождаться его формирования (на экране всплывает уведомление, держится пару секунд и исчезает). В общем - программа работает до тех пор, пока не нажимаешь сформировать отчет. Прогонял ее без отчета - прокликивает все менюшки, подставляет все нужные значения, но как только включаю формирование отчетов - ожидает появления уведомления (уведомлениеможет появиться и через 5 секунд и через 5 минут в зависимости от объема выборки и загрузки канала связи) и прождав 115 - 120 секунд вылетатет с ошибкой:
BmpSearch.au3 (31) :==> Variable must be of type "Object".
Local $iRowInc = ($tSizeSource.X - $tSizeFind.X) * 4
Local $iRowInc = ($tSizeSource^ ERROR
Для контроля уже и счетчик поставил, ошибка появляется всегда (6 раз прогонял) на 244 вызове процедуры поиска и всегда ругается на эту переменную. Поправил код процедуры каждый раз перед присвоением выводя на консоль текущий порядковый номер вызова процедуры поиска, и значение переменных... Так вот во всех случаях переменная $tSizeSource.X возвращает текущее разрешение экрана по оси Х (1920). При 244 вызове ругается уже в точке вывода переменной на консоль. То есть получается при 244 вызове в переменную попадает какая то хрень возвращаемая процедурой _WinAPI_GetBitmapDimension($hSource). Переменная $hSource при вызове всегда разная, не думаю, что проблема в ней. Можно конечно перелопатить BmpSearch.au3 включив его в программу, и вызывать функцию _WinAPI_GetBitmapDimension($hSource) один раз за запуск - сохраняя значение разрешения экрана, но как то это не правильно. Функция должна выполняться каждый раз возвращая стабильное значение, если на 244 раз она выдает хрень - нужно править функцию.
Если кто сталкивался - как победили?
***
Добавлю к грехам функции...
Начиная с 117 вызова функция возвращает странные значения найденных координат картинки.
Например координаты в 116 запуске поиска возвращаются координаты 990х187, в 117 запуске поиска той же картинки координаты уже 94х559428
При попытке поставить курсор на данную область - он улетает к верхней границе экрана, и там выполняется клик.
Буду пробовать BmpSearchEx.
Последнее редактирование: