Автор Тема: [Автоматизация] Выполнение операции после выполнения одновременно 2-х условий  (Прочитано 2018 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн be4hoctb [?]

  • Новичок
  • *
  • Сообщений: 38
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Ситуация такая. Нужно автоматизировать торговлю товарами. Скрипт проверяет наличие пикселя в области количества товара и проверяет наличие доступной цены и только при соблюдении этих 2 условий выполняет действие. Если условия не выполняются то переходит к следующему товару и так до 7 раз.

Код: AutoIt [Выделить]
Func _Eda()
   
    $coord = PixelSearch(250, 313, 263, 325, 0x000000) And  $coord = PixelSearch(550, 313, 550, 325, 0x000000)
    If Not @error Then
        MouseClick('Left', 610, 318, 1)
       
    Else
        MouseClick('Left', 100, 360, 1)
     $coord = PixelSearch(250, 313, 263, 325, 0x000000) And  $coord = PixelSearch(550, 313, 550, 325, 0x000000)
     If Not @error Then
        MouseClick('Left', 610, 358, 1)
EndIf
EndIf
EndFunc
 


Русское сообщество AutoIt


Помечен как лучший ответ пользователем be4hoctb Отправлен Декабрь 02, 2014, 00:42:19

Оффлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 4102
  • Репутация: 1089
    • Награды
  • Версия AutoIt: 3.3.14.0
be4hoctb
Если я правильно понял, то как-то так
Код: AutoIt [Выделить]
ConsoleWrite(_Eda() & @CRLF)

Func _Eda()
  Local $coord1, $coord2
  For $i = 1 To 7
    $coord1 = PixelSearch(250, 313, 263, 325, 0x000000)
    $coord2 = PixelSearch(550, 313, 550, 325, 0x000000)
    If IsArray($coord1) And IsArray($coord2) Then
      MouseClick('Left', 610, 318, 1)
      Return $i
    EndIf
    MouseClick('Left', 100, 360, 1)
  Next
  Return 0
EndFunc


Оффлайн be4hoctb [?]

  • Новичок
  • *
  • Сообщений: 38

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Направление верное, я не знал как сделать так чтобы выполнялось действие при выполнении двух PixelSearch одновременно.
После выполнения действия функция завершается.
Что бы было понятнее я выложил полный скрипт.
В функции Eda я хочу добавить дополнительную проверку пикселя и при совпадении обоих чтобы выполнялось действие, а если не совпало то переходить к выполнению поиска следующего.

(нажмите для показа/скрытия)


Добавлено: Декабрь 01, 2014, 23:39:15
По твоему примеру вот что собрал.
Все ли правильно и можно ли использовать Local как у меня в примере? и ничего что я переменные одинаково называю в одной функции? (Local $p1, $p2)

(нажмите для показа/скрытия)
« Последнее редактирование: Декабрь 01, 2014, 23:39:16 от be4hoctb, Причина: Объединение сообщений »

Русское сообщество AutoIt


Оффлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 4102
  • Репутация: 1089
    • Награды
  • Версия AutoIt: 3.3.14.0
be4hoctb  [?]
Цитировать
Все ли правильно
Теоритически правильно, практически - проверяйте.

Цитировать
переменные одинаково называю в одной функции
Так как вы их используете только для проверки выполнения функции, то ничего страшного. И объявить их достаточно один раз (но и повторные объявления не запрещены).

А это вариант для вашего полного кода
(нажмите для показа/скрытия)
Здесь для проверки функции используется @error, поэтому присвоение $coord излишне (вы её всё равно не используете), хоть и не запрещено.

Оффлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 4102
  • Репутация: 1089
    • Награды
  • Версия AutoIt: 3.3.14.0
be4hoctb  [?]
Цитировать
Это возможно сделать?
Возможно
OffTopicпри помощи передачи в функцию параметров
Но здесь жёсткие правила: одна тема - одна проблема.

Русское сообщество AutoIt


Оффлайн madmasles [?]

  • Глобальный модератор
  • *
  • Сообщений: 7790
  • Репутация: 2317
  • Пол: Мужской
  • Награды За модерирование форума
    • Награды
  • Версия AutoIt: 3.3.x.x
be4hoctb  [?]
Цитировать
Помогите еще с одной задумкой.
ПредупреждениеЗа нарушение общих правил (пункт В.4):
Цитировать
Не лепите несколько вопросов разной тематики в один пост. По типу "Ребят, а ещё такой вопрос...". Каждый вопрос в свою тему.


С уважением, ваш Глобальный модератор.

Русское сообщество AutoIt


 

Похожие темы

  Тема / Автор Ответов Последний ответ
4 Ответов
6581 Просмотров
Последний ответ Январь 29, 2011, 19:30:45
от CaHbka
11 Ответов
5099 Просмотров
Последний ответ Сентябрь 22, 2011, 03:45:05
от eil
5 Ответов
3858 Просмотров
Последний ответ Октябрь 17, 2011, 18:37:38
от glorycpsu
1 Ответов
2349 Просмотров
Последний ответ Март 06, 2012, 17:31:20
от Trans
0 Ответов
1539 Просмотров
Последний ответ Март 06, 2012, 19:52:27
от madmasles
8 Ответов
3711 Просмотров
Последний ответ Ноябрь 11, 2012, 21:34:01
от shift72
8 Ответов
2243 Просмотров
Последний ответ Сентябрь 30, 2014, 19:42:39
от CrazyKing
3 Ответов
1329 Просмотров
Последний ответ Июнь 02, 2016, 10:51:21
от Alofa
3 Ответов
485 Просмотров
Последний ответ Сентябрь 17, 2018, 14:19:41
от joiner
2 Ответов
222 Просмотров
Последний ответ Январь 09, 2019, 05:34:03
от Mihail10