Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Синичка

Pages: [1] 2
1
Здравствуйте.
Почему-то перестало работать "повторение"... Я не понимаю, почему) он просто нажимает 1 раз при каждом и всё, хотя должно быть по нарастающей - нажать один раз, в следующий нажать два раза... раньше работало) сейчас не знаю, где ошибка, прошу помощи)

Code: [Select]
WAITMS(500)
$count1 = 158   
$count2 = 1
FOR($a,$a<$count1)
      //имя
      DBLCLICK(121,445)   
      WAITMS(1000)
   FOR($b,$b<$count2)
      //ПОВТОРЕНИЕ <<<<<<<<
      LCLICK(1700,554) 
      WAITMS(500)
   END_CYC
   
   INC($count2,1)     
//выбрать                   
LCLICK(1672,554)
WAITMS(1000)
//соединение         
KEYDOWN (#ENTER)   
KEYUP (#ENTER)
WAITMS(5000) 
LCLICK(788,249) 
WAITMS(1000)
//выход
LCLICK(1742,208) 
WAITMS(5000)
END_CYC
 
HALT

2
Ну причем тут $count2 = 1 наращивание происходит через инк! INC($count2,1)

Простите, просто было предположение) Спасибо, всё работает

3

Если написать

Code: [Select]
$count2 = 2
То каждый раз повторение будет увеличиваться на 2? То есть, если в первый раз повтор был 1 раз, то в следующий раз действие повторится 3 раза?


Не могу понять, как действует( то есть для основного просто прописано ограничение, а для второго нет? Или тут что-то другое?  нет, не могу понять, как будет работать(

4
Здравствуйте.
Имеется примерный код

Code: [Select]
//имя
DBLCLICK(996,696) 
WAITMS(500)
//вниз
LCLICK(1116,966) 
WAITMS(500)
//выбрать                   
LCLICK(996,934) 
WAITMS(500)
//Подтверждение       
KEYDOWN (#ENTER)   
KEYUP (#ENTER)
WAITMS(3000) 
//переход
LCLICK(807,784)   
WAITMS(2000)

Этот цикл повторяется раз 20-40.
Но каждый раз нужно как-то сделать, чтобы количество повторов действия

Code: [Select]
//вниз
LCLICK(1116,966) 
WAITMS(500)

увеличивалось на 1. То есть, чтобы во второй раз это действие повторилось уже 2 раза. В третий раз чтобы увеличилось еще на 1, то есть, чтобы оно повторилось уже 3 раза. И так по увеличению, пока все циклы не закончатся

Делать так:

Code: [Select]
sub(Вниз)
LCLICK(1116,966) 
WAITMS(500)
end_sub

//имя
DBLCLICK(996,696) 
WAITMS(500)

FOR ($i, $i<1) 
//вызов подпрограммы
Вниз()
END_CYC

//выбрать                   
LCLICK(996,934) 
WAITMS(500)
//Подтверждение       
KEYDOWN (#ENTER)   
KEYUP (#ENTER)
WAITMS(3000) 
//переход
LCLICK(807,784) 
WAITMS(2000)

//имя
DBLCLICK(996,696) 
WAITMS(500)

FOR ($i, $i<2) 
//вызов подпрограммы
Вниз()
END_CYC

//выбрать                   
LCLICK(996,934) 
WAITMS(500)
//Подтверждение       
KEYDOWN (#ENTER)   
KEYUP (#ENTER)
WAITMS(3000) 
//переход
LCLICK(807,784) 
WAITMS(2000)

Но так будет слишком много места занимать

Или так:

Code: [Select]
sub(Имя)
DBLCLICK(996,696) 
WAITMS(500)
end_sub

sub(Вниз)
LCLICK(1116,966) 
WAITMS(500)
end_sub

sub(Остаток)
//выбрать                   
LCLICK(996,934) 
WAITMS(500)
//Подтверждение       
KEYDOWN (#ENTER)   
KEYUP (#ENTER)
WAITMS(3000) 
//переход
LCLICK(807,784) 
WAITMS(2000)
end_sub

FOR ($i, $i<1) 
//вызов подпрограммы
Имя()
END_CYC
FOR ($i, $i<1) 
//вызов подпрограммы
Вниз()
END_CYC
FOR ($i, $i<1) 
//вызов подпрограммы
Остаток()
END_CYC

FOR ($i, $i<1) 
//вызов подпрограммы
Имя()
END_CYC
FOR ($i, $i<2) 
//вызов подпрограммы
Вниз()
END_CYC
FOR ($i, $i<1) 
//вызов подпрограммы
Остаток()
END_CYC

и так тоже места много, но хотя бы при исправлении координат не придется изменять всё. Или есть другой способ? Извините, но в кодах я не понимаю ровно ничего(

5
Вот написал подпрограмму отсчета. Используем её за место задержек.

Очень интересно, спасибо, попробую разобрать на запчасти что-то новое)
Благодарю за помощь!

6
Хорошо, если поднять подпрограмму "Два" выше, то вызов будет работать. Просто раньше мне отвечали, что подпрограмма в подпрограмме вроде не работает.
за это спасибо)

Про второе понятно - HINTPOPUP в справочнике хотя бы есть. Тоже благодарю.

1. подробнее:


Как узнать, сколько осталось времени для окончания этой задержки? 10 минут? 20 минут? Постоянно добавляю строчки с кодами и время вечно отодвигается, а ждать для проверки не всегда предоставляется возможным

7
1. Непонятно, как это сделать)

2. Из сообщения модератора через поиск на сайте.

3. Но тогда не сработает "Два", вы меня не поняли.

Было:
Code: [Select]
sub(Один)
//Какие-либо действия 1
   sub(Два)
      //Какие-либо действия 2
   end_sub
//Какие-либо действия 3
end_sub

//вызов подпрограммы (чтобы при этом сработал и "Два", прописанный внутри "Один")
Один()

а по вашему получается, что действий 3 не будет. И мало того, вызова подпрограммы "Два" у вас тоже нет. А я не хочу их 40-50 раз записывать вручную. так как координаты часто меняются. у меня нет желания потом по всему коду шарить и исправлять одно и то же десятки раз. А изменять придется далеко не 1 строку и даже не 10 и не 50.

8
Здравствуйте.
1. В коде имеем задержки от 1 часа до 12-и часов. Как узнать, сколько времени осталось при определенной задержке?

2. Как работает "TRAYSAY"? Что это такое?)

3. немного не к месту вопрос: Будет ли работать

Code: [Select]
sub(Один)
//Какие-либо действия
   sub(Два)
      //Какие-либо действия
   end_sub
//Какие-либо действия
end_sub

//вызов подпрограммы (чтобы при этом сработал и "Два", прописанный внутри "Один")
Один()


9
Через поиск почему то не нашло совпадений и в справке тоже не нашла про правый клик, можно ли так
Будет ли работать:
Code: [Select]
RCLICK(RND(100,500),RND(100,500))

10
Хорошо, проставлю везде кавычки. Всё равно весь код теперь переделывать надо, на более доработанный. )

Вопрос: можно ли в имени подпрограммы использовать цифры? Просто они при написании как-то подсвечиваются в коде, я побоялась их писать, использую слова, но вдруг я зря кипишую и можно использовать, и насчет пробелов тоже мне непонятно, например, можно ли так: sub(Запись 225), а не писать так: sub(Запись-двести-двадцать-пять)?

11
Ам.. там нужны всегда кавычки?
Просто у меня там всегда словом написано, цифры я для примера поставила. И нигде кавычек не ставила никогда, всё работает. Или кавычки нужны там только если цифра есть в названии картинки?

12
Получилось примерно так, чтобы не повторять действия:
Будет ли верным?

Code: [Select]
FOR ($i, $i<200)   

WAITMS(1000)

getscreen
if_picture_in(100,100,500,500, 1.bmp)
   //Совпало
   //вызов подпрограммы
   1.1() 
else
   // не совпало
end_if

getscreen
if_picture_in(500,500,1000,1000, 2.bmp)
   //Совпало
   // вызов подпрограммы
   2.1() 
else
   // не совпало
end_if

//вызов подпрограммы
2.2() 

WAITMS(5000)

END_CYC

13
Спасибо) очень помогли, благодарю)

14
Ну в общем-то да, вы правы. Если действия в обоих случаях все равно одинаковые. В этом спасибо.
А как насчет клика по области (первый вопрос)? Возможно ли такое сделать? Если да, то с помощью чего.

15
Еще вопрос, можно ли теоретически сделать так в цикле:
(если можно, то я сама сделаю, просто знать бы подтверждение, что не зря буду мучиться))

Code: [Select]
//Проверить через скрин и поиск картинок 1 и 2

//нашел 1
   Сделать действие 1.1

   //Поиск 2
   //Нашел 2
      Сделать действие 2.1
      Сделать действие 2.2

   //Не нашел 2
      Сделать действие 2.2

//Не нашел 1
   //Поиск 2
   //Нашел 2
      Сделать действие 2.1
      Сделать действие 2.2

   //Не нашел 2
      Сделать действие 2.2

Pages: [1] 2