Author Topic: Выбор свободного окна  (Read 1995 times)

0 Members and 1 Guest are viewing this topic.

gogodanse

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Выбор свободного окна
« on: August 10, 2021, 10:58:00 PM »
Всем привет, появилась новая задумка

Попрошу помочь подкованных людей с идеей и реализацией, у самого в голове есть задумки но возможно кто-то облегчит это без костылей

Суть такова, есть 6 окон (все образно их может быть больше)

В каждом окне есть кнопка start/stop и индикатор включения, а так же поле ввода текста

Дак вот, в программу будет поступать сообщения от яндекс денег с комментарием, в комментарии будет текст который кликер должен вытащить и вставить в поле ввода,
но перед этим он должен найти свободное окно где горит зеленый индикатор допустим через if pixel и запустить окно, после чего должен запуститься таймер чтобы это окно остановилось и освободилось

Ну что у кого какие мысли есть ? Буду очень признателен

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Выбор свободного окна
« Reply #1 on: August 12, 2021, 08:02:01 AM »
А что тут думать, делать надо!

Ты же всё описал. В чём проблема?


gogodanse

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Re: Выбор свободного окна
« Reply #2 on: August 12, 2021, 08:46:36 PM »
Первый вопрос как сделать переменную тоесть вот я получил сообщение от яндекса ewf432562335 надо чтобы оно сохранилось в памяти пока не будет запущенно в свободное окно а после запуска очищалось

Теперь идет поиск свободного окна, допустим через if pixel in


Нашли индикатор свободного окна и теперь вставляем в окно сообщение и очищаем для следующего сообщения от яндекса

gogodanse

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Re: Выбор свободного окна
« Reply #3 on: August 13, 2021, 02:06:14 AM »
$message = "awt423t2" /// Получен айди из яндекса

IF($message = "0" )
   WAIT(5)
ELSE
   GETSCREEN
   IF_PIXEL_IN(0,0, $_xmax,$_ymax, 255) /// ищем свободно ли в первом окне
      $check = "0"
      LCLICK($_return1, $_return2) /// тут типо будет что вставляем в окно айди и запускаем
      WAITMS(100)
   ELSE
      WAIT(1)
   END_IF
   IF_PIXEL_IN(0,0, $_xmax,$_ymax, 255) /// ищем свободно ли в первом окне №2
      $check = "0"
      LCLICK($_return1, $_return2) /// тут типо будет что вставляем в окно айди и запускаем
      WAITMS(100)
   ELSE
      WAIT(1)
   END_IF
   IF_PIXEL_IN(0,0, $_xmax,$_ymax, 255) /// ищем свободно ли в первом окне №3
      $check = "0"
      LCLICK($_return1, $_return2) /// тут типо будет что вставляем в окно айди и запускаем
      WAITMS(100)
   ELSE
      WAIT(1)
   END_IF
END_IF


Давайте кидайте в меня камнями, ну или лучше поправьте

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Выбор свободного окна
« Reply #4 on: August 13, 2021, 07:23:45 AM »
Скрин бы показал, а то непонятно, то 6 окон, то уже 3 индикатора в 1 окне. Окна одновременно развернуты рядам или их надо разворачивать по очереди и они в одном месте?
Почему поиск по всему экрану? Проверяй отдельный пиксель на нужный цвет.
И почему после нахождения и вставки не ограничиваются другие поиски.


gogodanse

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Re: Выбор свободного окна
« Reply #5 on: August 13, 2021, 01:39:21 PM »
@vint это я образдно я хотел в первом посте ещё выгрузить скрин но там пишет папка upload переполнена

Короче 6 окон все рядом расположены, в каждом естественно индикатор

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Выбор свободного окна
« Reply #6 on: August 13, 2021, 03:01:55 PM »
Картинку можно вставить с другого ресурса. Хоба!



Code: (clickermann) [Select]
// Допустим, что окна выровнены точно.
// 2 ряда по 3 окна
$rows = 2
$colls = 3

// Координаты индикатора первого окна
$ind_x = 100
$ind_y = 200

// Шаг окон по x и Y
$step_x = 500
$step_y = 500

// координаты поля ввода (смещение от $ind_x/$ind_y
$form_x = 50
$form_y = 35


$message = "awt423t2" /// Получен айди из яндекса
TOCLIP($message)
WAITMS(300)

IF($message != "" )
    GETSCREEN
    FOR($row=0, $row < $rows)
        FOR($coll=0, $coll < $colls)
            IF(PXL($ind_x + ($coll*$step_x), $ind_y + ($rows*$step_y)) = 433934)
                // тут типо будет что вставляем в окно айди и запускаем...
                LCLICK($_return1 + $form_x, $_return2 + $form_y)  // клик по полю ввода
                WAITMS(150)
               
                // вставляем код
                KEYDOWN(#CTRL)
                WAITMS(50)
                KEYPRESS(#V)
                WAITMS(50)
                KEYUP(#CTRL)
                WAITMS(200)
               
                // как-то там запускаем, хз
               
                // прерываем дальнейший поиск
                $row = 1000
                $coll = 1000
                $message = ""
            END_IF
           
        END_CYC
    END_CYC
END_IF


gogodanse

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Re: Выбор свободного окна
« Reply #7 on: August 13, 2021, 06:20:21 PM »
@Vint

Спасибо выглядит реально круто, но ты забыл про таймер  ;)

Смотри когда он выбрал свободное окно вставил message и запустил нужно чтобы он включал таймер на это окно

Вставили айди нажали кнопку start
Включился таймер например на 4 часа
По окончанию таймера в этом окне нажмется кнопка stop по указанным координатам в этом окне

Code: [Select]
IF(PXL($ind_x + ($coll*$step_x), $ind_y + ($rows*$step_y)) = 433934)
                // тут типо будет что вставляем в окно айди и запускаем...
                LCLICK($_return1 + $form_x, $_return2 + $form_y)  // клик по полю ввода
                WAITMS(150)
 
                // вставляем код
                KEYDOWN(#CTRL)
                WAITMS(50)
                KEYPRESS(#V)
                WAITMS(50)
                KEYUP(#CTRL)
                WAITMS(200)
 
                // как-то там запускаем, хз
 
                // прерываем дальнейший поиск
                $row = 1000
                $coll = 1000
                $message = ""
            END_IF
« Last Edit: August 14, 2021, 12:16:08 PM by gogodanse »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Выбор свободного окна
« Reply #8 on: August 15, 2021, 05:43:21 PM »
но ты забыл про таймер  ;)
Ничего я не забывал. Я и не делал никакой таймер.
В описании было только, что должен запуститься какой-то таймер. Что за таймер, где таймер...  наш или на странице, если на странице, как запускается... Всё это где брать? и где об этом узнавать?
В вопросе подробно не описано, значит игнорируем  :)
Я же не пишу конечный скрипт, это в любом случае пример написанный УЖЕ с кучей допущений и догадок, что там да как.


gogodanse

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Re: Выбор свободного окна
« Reply #9 on: August 15, 2021, 10:09:11 PM »
@Vint серовно спасибо большое, игнорщик

Поэтому буду делать костыль

GETSCREEN
IF_PIXEL_IN(0,0, $_xmax,$_ymax, 255)//// увидел что индикатор в указаном окне запущен
   IF($time < $_time_t)
      $time = $_time_t + 60/// запускает таймер на 60 не знаю чего
      LCLICK(10,10) /// после того как таймер закончился жмет кнопку stop
   END_IF
ELSE
   WAITMS(100)
END_IF