Author Topic: scanpicture  (Read 4098 times)

0 Members and 1 Guest are viewing this topic.

squid

  • Освоившийся
  • **
  • Posts: 25
    • View Profile
scanpicture
« on: January 07, 2017, 10:05:40 AM »
Scanpicture Clickermann v4.12 (скорее и в остальных версиях)
Инструкция
Code: [Select]
scanpicture($var, 0,0, $_xmax,$_ymax, "pict.bmp")выдаст значения $var
Code: [Select]
281:995
281:942
281:783
281:660
281:607
281:554
281:501
281:448
281:395
281:342
281:289
281:236
281:111
т.е. снизу-право экрана в то время как везде идёт отсчёт сверху-лево. Я понимаю, что это не ошибка, но выглядит странно. Знаю, что массив можно потом взять наибольший и отнимать, но это лишний код ибо мы же всё таки действия на страницах выполняем именно сверху-вниз. Или я чего-то не нашёл в документации?

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: scanpicture
« Reply #1 on: January 07, 2017, 12:18:54 PM »
В шаблонах есть пример который обрабатывает массив как раз с начала. Но требует при этом обнуления массива.
Code: (clickermann) [Select]
GETSCREEN
SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "picture.bmp", -1, 100)
$ARR_NUM = 0
WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
   $X = $ARR_SCAN [$ARR_NUM]
   INC($ARR_NUM,1)
   $Y = $ARR_SCAN [$ARR_NUM]
   INC($ARR_NUM,1)
   LCLICK($X, $Y)   // Клик
   WAITMS(100)
END_CYC
UNDEFINE($ARR_SCAN)

Вот еще пример с циклом FOR
Code: (clickermann) [Select]
GETSCREEN
SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "picture.bmp", -1, 100)
FOR($a=0,$a<ARRSIZE($ARR_SCAN),2)
   LCLICK($ARR_SCAN[$a], $ARR_SCAN[$a+1]) // Клик
   WAITMS(100)
END_CYC
UNDEFINE($ARR_SCAN)

squid

  • Освоившийся
  • **
  • Posts: 25
    • View Profile
Re: scanpicture
« Reply #2 on: January 07, 2017, 03:44:04 PM »
Спасибо, но я видел шаблон и он не устроил тем, что по непонятной причине иногда проскакивает первый элемент. Времени разбираться не было, поэтому и взял из help'а. Просто интересно, что софтина берёт значения из массива по принципу стека.
Ну да бог с ним. Тут неприятнее ситуация.
Code: [Select]
M1:
GETSCREEN
SCANPICTURE ......
WHILE...
   ,........
   page() // подпрограмма
   .........
END_CYC
KEYPRESS(#PAGEDOWN)
GOTO(M1)
И после этого PAGEDOWN следующий $y непонятно какой.  Позиционирует на не точные координаты именно по $y.  Может я чего не обнуляю?  Но значение $y не равно предыдущему его значению.
« Last Edit: January 07, 2017, 04:22:48 PM by squid »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: scanpicture
« Reply #3 on: January 07, 2017, 04:22:35 PM »
Ну вот например
Code: (clickermann) [Select]
KEYPRESS(#PAGEDOWN)
WAIT(2) // почему нет задержки после нажатия клавиши?
GOTO(M1)

PAGEDOWN нажат, еще ничего произойти не успело а мы уже делаем снимок.

squid

  • Освоившийся
  • **
  • Posts: 25
    • View Profile
Re: scanpicture
« Reply #4 on: January 07, 2017, 04:28:36 PM »
Ну вот например
Code: (clickermann) [Select]
KEYPRESS(#PAGEDOWN)
WAIT(2) // почему нет задержки после нажатия клавиши?
GOTO(M1)
PAGEDOWN нажат, еще ничего произойти не успело а мы уже делаем снимок.
Хотел было написать, что есть, но оказалось, что у меня WAITMS. Вот я лошара.. Спасибо.