Author Topic: getscreen скорость работы  (Read 3756 times)

0 Members and 1 Guest are viewing this topic.

zergshadow

  • Освоившийся
  • **
  • Posts: 62
    • View Profile
getscreen скорость работы
« on: November 08, 2017, 10:04:34 AM »
Интресует скорость работы этой функциии.чем боьлше экран тем боьлше оно его сохраняет,ато я замутил что бывает на большом экране нажная точка есть и идет команда сделать снимок жкрана и нажать на кнопку но все равно идет обновление экрана как будь-то ее нет.

WHILE((($_time_m= 9) & ($_time_s> 50)) | (($_time_m=10) & ($_time_s<15))) & ($a=0)  )
      //  WHILE       ($a=0)
      keyDown(116)
      waitms(100 + $S_CORR)  /////один раз нажало левее как будто не успело 1- 100 с отрендерится. но ыла каче всего запущено.   шяяф уещпщ зщыефмшд return1+ 10
      keyUp(116)
     
      getscreen (758,199,810,803)
      if_pixel_in(758,199,810,803, 5102591) /
         waitms(200 + $S_CORR)
         lclick($_return1+10,$_return2+2)
         
         waitms(300)  //koda postavil 100  tabli4ka ne uspela poyaavitsa a ono uje najalo i ni4ego vrode ne slu4ilos zelenoy nadpisi nebulo.
         /////2. 200 поставил не работает.
         
         getscreen (775,191,900,350)
         if_pixel_in(775,191,900,350, 5102591)
           
            lclick($_return1+2,$_return2+2)
           
            $a=1///
           
         end_if
      end_if
     
     

     
   END_CYC

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: getscreen скорость работы
« Reply #1 on: November 08, 2017, 06:39:06 PM »
Не нужно сунуть паузу сразу после поиска. Пауза нужна после действий.
Вот после  keyUp(116) перед  getscreen она очень нужна, но её там нет


zergshadow

  • Освоившийся
  • **
  • Posts: 62
    • View Profile
Re: getscreen скорость работы
« Reply #2 on: November 09, 2017, 10:59:31 AM »
Не нужно сунуть паузу сразу после поиска. Пауза нужна после действий.
Вот после  keyUp(116) перед  getscreen она очень нужна, но её там нет

https://drive.google.com/open?id=16NFnX9MB6JcLmrWWvc1NhrfxHa9JcyL7

вот видео. раньше все работало но потом решил  место нажатия в определенный пиксель подтверждения  перейти на сканирование и поиск   кнопки подтверждения,оно ее не находит.

на двух компах такое творится,всегда  через 300мс идет нажатия в точку координаты которой были определены вторым условием if_pixel_in,но почему-то оно покидает функцию иф и сначало делает обновление от общего цикла вайл, и потому открывает совсем другую страницу и начинает ее обновлять.
« Last Edit: November 09, 2017, 11:52:49 AM by zergshadow »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: getscreen скорость работы
« Reply #3 on: November 09, 2017, 11:49:48 AM »
Не понятно, при чём здесь "скорость работы" в теме?

Вот это условие, неправильное.
Code: (clickermann) [Select]
WHILE((($_time_m= 9) & ($_time_s> 50)) | (($_time_m=10) & ($_time_s<15))) & ($a=0)  )Посчитай скобки. Одной в начале не хватает.

На видео ничего непонятно. Мы под водой в запотевшей маске.
Понятно что масштаб крутится как захочется. Там цвет сплошной по кнопке? Во всех пикселах одинаковый? Если НЕТ, при изменении масштаба все цвета уплывут.

P.S. всмотрелся в видео пристальнее пытаясь понять, что же там происходит. И стало понятно.
Зачем ты делаешь вот эти манипуляции?
Code: (clickermann) [Select]
         waitms(300)  //koda postavil 100  tabli4ka ne uspela poyaavitsa a ono uje najalo i ni4ego vrode ne slu4ilos zelenoy nadpisi nebulo.
         /////2. 200 поставил не работает.

Тебе нужно увеличивать задержку, а ты уменьшаешь. Вся проблема не в медленности "getscreen скорость работы", а как раз наоборот, скрипт работает очень быстро. Ты не представляешь как быстро и поэтому неправильно расчитываешь.

1. На 29 секунде он нашёл первым поиском if_pixel_in цвет 5102591
2. кликнул по нему
3. Потом пауза маленькая. Окно ещё НЕ появилось. Второй поиск if_pixel_in настроен на другую область. Там пока ничего нет и поиск даёт отрицательный результат.
4. Переходит на следующую итерацию цикла WHILE
5. Опять первым поиском if_pixel_in находим ту же кнопку по которой уже кликали.
6. Здесь после поиска идёт пауза waitms(200 + $S_CORR) которую тебе говорили убрать и больше их так не ставить. Не знаю почему ты не хочешь слушать. В это время, как раз появляется окно.
7. Происходит клик из поиска пункта 5 по найденной старой кнопке. При этом окно естественно закрывается.
8. Пока окно закрывается с анимацией и твоей уменьшенной задержкой скрипт доходит до второго поиска if_pixel_in и успевает его найти.
9. Но окно уже присмерти и клик уходит в никуда.

Не нужно всё уменьшать, сделай пока медленно и размеренно. С паузами в нужных местах.
Если второе окно появляется всегда, то его нужно ждать циклом, а не просто искать. Если не всегда, то подбором паузы давать ему время появиться.

И добавь задержку после keyUp. Дай браузеру, перед поиском, перерисовать окно после действий. Иначе на новом снимке будет ещё старое изображение и поиск найдёт всё в старых местах. Потом пока внутренние задержки отработают, экран изменится и кликнет не туда.
« Last Edit: November 09, 2017, 11:57:06 AM by Vint »


zergshadow

  • Освоившийся
  • **
  • Posts: 62
    • View Profile
Re: getscreen скорость работы
« Reply #4 on: November 09, 2017, 05:10:22 PM »
Не понятно, при чём здесь "скорость работы" в теме?

Вот это условие, неправильное.
Code: (clickermann) [Select]
WHILE((($_time_m= 9) & ($_time_s> 50)) | (($_time_m=10) & ($_time_s<15))) & ($a=0)  )Посчитай скобки. Одной в начале не хватает.

На видео ничего непонятно. Мы под водой в запотевшей маске.
Понятно что масштаб крутится как захочется. Там цвет сплошной по кнопке? Во всех пикселах одинаковый? Если НЕТ, при изменении масштаба все цвета уплывут.

P.S. всмотрелся в видео пристальнее пытаясь понять, что же там происходит. И стало понятно.
Зачем ты делаешь вот эти манипуляции?
Code: (clickermann) [Select]
         waitms(300)  //koda postavil 100  tabli4ka ne uspela poyaavitsa a ono uje najalo i ni4ego vrode ne slu4ilos zelenoy nadpisi nebulo.
         /////2. 200 поставил не работает.

Тебе нужно увеличивать задержку, а ты уменьшаешь. Вся проблема не в медленности "getscreen скорость работы", а как раз наоборот, скрипт работает очень быстро. Ты не представляешь как быстро и поэтому неправильно расчитываешь.

1. На 29 секунде он нашёл первым поиском if_pixel_in цвет 5102591
2. кликнул по нему
3. Потом пауза маленькая. Окно ещё НЕ появилось. Второй поиск if_pixel_in настроен на другую область. Там пока ничего нет и поиск даёт отрицательный результат.
4. Переходит на следующую итерацию цикла WHILE
5. Опять первым поиском if_pixel_in находим ту же кнопку по которой уже кликали.
6. Здесь после поиска идёт пауза waitms(200 + $S_CORR) которую тебе говорили убрать и больше их так не ставить. Не знаю почему ты не хочешь слушать. В это время, как раз появляется окно.
7. Происходит клик из поиска пункта 5 по найденной старой кнопке. При этом окно естественно закрывается.
8. Пока окно закрывается с анимацией и твоей уменьшенной задержкой скрипт доходит до второго поиска if_pixel_in и успевает его найти.
9. Но окно уже присмерти и клик уходит в никуда.

Не нужно всё уменьшать, сделай пока медленно и размеренно. С паузами в нужных местах.
Если второе окно появляется всегда, то его нужно ждать циклом, а не просто искать. Если не всегда, то подбором паузы давать ему время появиться.

И добавь задержку после keyUp. Дай браузеру, перед поиском, перерисовать окно после действий. Иначе на новом снимке будет ещё старое изображение и поиск найдёт всё в старых местах. Потом пока внутренние задержки отработают, экран изменится и кликнет не туда.

в этих кнопках пиксели разного цвета но  5102591     большинство

3.это окно появляется сразу для подтверждения.если поставить клик в ту точку через 100 мс то  кнопка хотя и нажимается,но ничего не происходит потому что дом дерево не достроено и она не рабочая.при 200 мс кнопка нажимается и все нормально.
Потом кнопка стала менять место и я решил добавить скрипт нахождения ее и вот тогда начались проблемы.что даже при 300 мс оно ее находит,потом почему-то не выполняет нажатие а выходит с условия  if_pixel_in у к внешнему циклу вайл и обновляет,а потом  обратным числом нажимает в ту кнопку которая еще в прошлом цикле была найдена.

5. это полезная информация.тут и видна разность в скорости функций. кнопки уже там нет а нажатие туда идет.
« Last Edit: November 09, 2017, 05:34:10 PM by zergshadow »

zergshadow

  • Освоившийся
  • **
  • Posts: 62
    • View Profile
Re: getscreen скорость работы
« Reply #5 on: November 17, 2017, 12:27:33 PM »
 IF(PXL(606,178) =!16777215)    а почему  !   тут   не работает ,это вед оператор нет?

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: getscreen скорость работы
« Reply #6 on: November 17, 2017, 02:27:57 PM »
IF(PXL(606,178) =!16777215)    а почему  !   тут   не работает ,это вед оператор нет?

В 4.12 и ниже "не равно" пишется так !
В 4.13 по другому !=

zergshadow

  • Освоившийся
  • **
  • Posts: 62
    • View Profile
Re: getscreen скорость работы
« Reply #7 on: November 17, 2017, 03:01:59 PM »
IF(PXL(606,178) =!16777215)    а почему  !   тут   не работает ,это вед оператор нет?

В 4.12 и ниже "не равно" пишется так !
В 4.13 по другому !=
4.12.001     IF(PXL(606,178) =!16777215)      пропускает эту строку.
а где 13 лежит?
« Last Edit: November 17, 2017, 03:05:31 PM by zergshadow »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: getscreen скорость работы
« Reply #8 on: November 17, 2017, 05:11:32 PM »
4.12.001     IF(PXL(606,178) =!16777215)      пропускает эту строку.

Ну так напиши правильно
Code: (clickermann) [Select]
IF(PXL(606,178) ! 16777215)

zergshadow

  • Освоившийся
  • **
  • Posts: 62
    • View Profile
Re: getscreen скорость работы
« Reply #9 on: November 17, 2017, 05:26:07 PM »
4.12.001     IF(PXL(606,178) =!16777215)      пропускает эту строку.

Ну так напиши правильно
Code: (clickermann) [Select]
IF(PXL(606,178) ! 16777215)
а где 13 лежит?

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile