Автокликер Clickermann :: Форум

Основной раздел => Общие вопросы => Topic started by: Zets on February 21, 2014, 06:24:00 PM

Title: Что возвращает inputbox?
Post by: Zets on February 21, 2014, 06:24:00 PM
Я наверно всех уже достал, но сам не могу справится..
Для упрощения работы постороннего человека со скриптом создал режим диалога:
Code: (clickermann) [Select]
SCREENSHOTEX($_return1-3,$_return2+29, $_return1+36,$_return2+50, "label", 0)
$j1 = inputbox("Введите номер страницы в горизонтальной строке страниц $j1", "0")
WAIT(1)
$k1 = inputbox("Введите номер горизонтальной строки $k1", "0")

Но в работе скрипта выскакивает ошибка интерпритации LCLICK($XXX,$YYY)
Ошибка эта появляется тут
Code: (clickermann) [Select]
Sub(click1)
   LCLICK($XXX,$YYY)
   WaitMs(100)
End_Sub

Координаты получает отсюда:
Code: (clickermann) [Select]
// - Функция проверки загрузки страницы листов
sub(CHECK2)
   WHILE($d1 = 1)
      WAITMS($T)
      GETSCREEN
      If_Picture_In($KZX0,1,$KZX0+978,$_ymax, "textures\CHECK2.bmp")
         $d1 = 5
      END_IF
   END_CYC
   $d1 = 1
End_Sub
// - Функция поиска страницы №1
sub(CHECK3)
   WHILE($d1 = 1)
      GETSCREEN
      If_PIXEL_IN($KZX0,$KVLY0,$KZX0+978,$_ymax, 3616552)
         $KZX2 = $_return1
         $KZY2 = $_return2
         $d1 = 5
      END_IF
   END_CYC
   $d1 = 1
End_Sub

// == Копирование данных из 20ти строк страницы ==
SUB(COPY1)
   FOR ($i1, $i1 < 19)
      CHECK2()
      CHECK3()
      $XX1 = $KVLX0
      $YY1 = $YYYY0
      $XXX = $KZX2+$KZZ2*($j1)+6
      $YYY = $KZY2+$ZZ1
  LogWrite("координата строки ", $XXX ,",", $YYY)
      click1()
      LogWrite("Перешел на страницу: "$j1)
      IF($j1>0) & ($k1<1)
         CHECK5()
      END_IF
      CHECK2()
      GETSCREEN
      If_PIXEL_IN($XX1,$YY1,$KNPX0,$KNPY0, 13948116)
         $XXX = $_return1+25
         $YYY = $_return2
         LogWrite("координата пикселя ", $_return1 ,",", $_return2)
         LogWrite("координата строки ", $XXX ,",", $YYY)
         click1()
         $YYYY0 = $_return2+20
         LogWrite("Зашел в строку: "$i1)
         CHECK4()
         IF($SCR=1)
            SCREENSHOT("строка")
         END_IF
         DataCopy()
         $XXX = $KZX1+200
         $YYY = $KZY1+3
         click1()
      ELSE
         HintPopup("Не найден квадратик")
         LogWrite("Не найден квадратик! в строке"$i1)
         HALT
      END_IF
   END_CYC
END_SUB

CHECK2 и CHECK3 проходят. А координаты для клика выдает: координата строки 502+26*("1")+6,952
Т.е. введенное значение он как будто не понимает как число.
Как преобразовать строку в число что ли?
Title: Re: Что возвращает inputbox?
Post by: Zets on February 21, 2014, 06:35:29 PM
кажется решил проблему как то так:
Code: (clickermann) [Select]
$jj1 = inputbox("Введите номер страницы в горизонтальной строке страниц $j1", "0")
$j1 = int($jj1)
print($j1)
WAIT(1)
$kk1 = inputbox("Введите номер горизонтальной строки $k1", "0")
$k1 = int($kk1)
print($k1)
Title: Re: Что возвращает inputbox?
Post by: Oraven on February 21, 2014, 07:02:21 PM
Молодец, правильно понял. inputbox возвращает строку а нам нужны числа.

Только можно проще

Code: (clickermann) [Select]
$j1 = int(inputbox("Введите номер страницы в горизонтальной строке страниц $j1", "0"))
print($j1)
WAIT(1)
$k1 = int(inputbox("Введите номер горизонтальной строки $k1", "0"))
print($k1)
Title: Re: Что возвращает inputbox?
Post by: Oraven on February 21, 2014, 07:09:02 PM
Не верно!
Code: (clickermann) [Select]
IF($j1>0) & ($k1<1)Нужно так
Code: (clickermann) [Select]
IF(($j1>0) & ($k1<1))
Title: Re: Что возвращает inputbox?
Post by: Zets on February 21, 2014, 10:31:50 PM
Только можно проще
Я что то побоялся такой навороченной конструкции))

Не верно!

Что интересно работало, даже не смотря на то что надо было ИЛИ))))
Сейчас так выглядит
Code: (clickermann) [Select]
IF(($j1>0) | ($k1<1))
         CHECK5()
      END_IF
Title: Re: Что возвращает inputbox?
Post by: Крис Тинка on February 22, 2014, 06:09:01 AM
Что интересно работало, даже не смотря на то что надо было ИЛИ))))
Работало, потому что проверялось только первое неравенство.
Еще можно так написать,  чтобы не городить много скобок
Code: (clickermann) [Select]
IF($j1 > 0 | $k1 < 1)
Title: Re: Что возвращает inputbox?
Post by: Zets on February 22, 2014, 03:22:28 PM
Спс))