задачка
дано:
- в браузере всю страницу занимает игровое флеш-окно
- кликер привязан к флеш-окну и в нём прекрасно работает с анализом картинок (кликер видит флеш)
- как и положено флешу, флеш изредка слетает, и окно, к которому привязан кликер, перестаёт существовать
спрашивается: как распознавать данную ситуацию?
[spoiler]#name "errortest"
#logfile
$nAnswer= dialogbox("наведите курсор на окно, привязываюсь", 0)
$hWND= hget($_xmouse,$_ymouse)
hset($hWND,1)
hintpopup("привязался")
wndgetinfo($hWND, $nWPosX, $nWPosY, $nWWidth, $nWHeigth)
logwrite("1. hWND=", $hWND, " nWPosX=", $nWPosX, " nWPosY=", $nWPosY, " nWWidth=", $nWWidth, " nWHeigth=", $nWHeigth)
getscreen(100, 100, 200, 200)
screenshotex(100, 100, 200, 200)
if_picture_in(100, 100, 200, 200, "check.bmp")
logwrite("есть фрагмент")
else
logwrite("нет фрагмента")
end_if
keypress(#f5) // имитируем слёт флеш-плагина перезагрузкой страницы
wait(3)
wndgetinfo($hWND, $nWPosX, $nWPosY, $nWWidth, $nWHeigth)
logwrite("2. hWND=", $hWND, " nWPosX=", $nWPosX, " nWPosY=", $nWPosY, " nWWidth=", $nWWidth, " nWHeigth=", $nWHeigth)
if_picture_in(100, 100, 200, 200, "check.bmp")
logwrite("есть фрагмент")
else
logwrite("нет фрагмента")
end_if
getscreen(100, 100, 200, 200)
screenshotex(100, 100, 200, 200)
hset($hWND,0)
halt
[/spoiler]
4.11.003, skip_error=0 лог:
13:25:19 1. hWND=8848364 nWPosX=1920 nWPosY=54 nWWidth=1280 nWHeigth=940
13:25:19 есть фрагмент
13:25:23 2. hWND=8848364 nWPosX=4300968 nWPosY=42588832 nWWidth=4547396 nWHeigth=-42588832
13:25:23 есть фрагмент
после чего появляется окно ошибки
второй скриншот не создаётся
4.11.003, skip_error=1
if_picture_in так же находит фрагмент после уничтожения окна
окна ошибки нет
второй скриншот не создаётся
4.13b2, skip_error=0
if_picture_in так же находит фрагмент после уничтожения окна
окна ошибки нет
второй скриншот создаётся, там сплошная чернота
(кстати, если не ограничивать область, это хороший способ подвесить комп, раз уж мой любимый load в 4.13 Джони выпилил)
так как распознавать ситуацию уничтожения связанного окна?
я ничего лучшего чем сделать sub-обёртку для if_picture_in не придумал, но это как-то очень удручает