Author Topic: Поиск изображения  (Read 2179 times)

0 Members and 1 Guest are viewing this topic.

zkripter

  • Зашел в гости
  • *
  • Posts: 8
    • View Profile
Поиск изображения
« on: March 05, 2016, 05:26:17 PM »
Приветствую всех  :)

Как определить, что функция if_picture_in нашла изображение? Вообще, по-моему, она работает как-то странно или я что-то намудрил.

Алгоритм такой:
1) Запускаю этот скрипт. Теперь на диске - участок экрана в .bmp;
2) Убираю строку "третья";
3) Экран не меняю. Запускаю скрипт снова. Он печатает правильные результат;
4) Меняю экран. Запускаю скрипт. Результат тот-же  >:(. Переменные $_return1 и $_return2 не поменялись. Как определить, что экран изменился.

Кстати, если ввести строки "первая" и "вторая" и повторить весь алгоритм, то функция if_picture_in вообще никогда не меняет результаты - как были -1, так и остаются  >:(.

Как правильно определить, что область экрана изменилась?

Code: [Select]
#name "test script"

sub (print_res)
 define($str)

 $str = $_return1
 $str = strconcat($str, "_", $_return2)
 
 print($str)
end_sub

//$_return1 = -1 // первая
//$_return2 = -1 // вторая

print_res ()

wait(1)

getscreen

screenshotex(254, 59, 275, 595, "stt") // третья

if_picture_in(254, 59, 275, 595, "screens\stt0000.bmp")

print_res ()

//dialogbox($str, 0, 4)

halt

Кликермен

  • Активный участник
  • ***
  • Posts: 112
    • View Profile
Re: Поиск изображения
« Reply #1 on: March 05, 2016, 05:46:59 PM »
надо писать скрипт так, чтобы не исправлять каждый раз строки. запусти этот скриптик.  И еще,  почисти папки screen


Code: (clickermann) [Select]
#name "test script"
sub(pict)
   getscreen
   if_picture_in(250, 50, 290, 600, "screens\stt0000.bmp")
      $str = $_return1
      $str = strconcat($str, "_", $_return2)
      print($str)
else
      print("не найдено")
end_if
end_sub
getscreen

screenshotex(254, 59, 275, 595, "stt") // третья

$m2r= dialogbox("скрин сохранен", 0, 3)
$mr = dialogbox("Найти скриншот?", 4, 2)
if ($mr=6)
   pict()
end_if

wait(2)
$m2r= dialogbox("обнови экран", 0, 3)
$mr = dialogbox("Найти старый скриншот?", 4, 2)

if ($mr=6)
   pict()
end_if

halt

zkripter

  • Зашел в гости
  • *
  • Posts: 8
    • View Profile
Re: Поиск изображения
« Reply #2 on: March 05, 2016, 06:14:24 PM »
Спасибо

Все переписал, теперь работает  :D

Я гайд просто невнимательно читал, пропустил else ... end_if

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Поиск изображения
« Reply #3 on: March 06, 2016, 08:00:13 AM »
В системные переменные нельзя ничего записывать. Потому что создадутся обычные не системные переменные и все обращение будет идти к ним.