Author Topic: выбор строки в выпадающем меню  (Read 2046 times)

0 Members and 1 Guest are viewing this topic.

Kedrick

  • Освоившийся
  • **
  • Posts: 70
    • View Profile
выбор строки в выпадающем меню
« on: January 27, 2015, 11:58:56 AM »
Есть вот такое поле в игре


Я сделал вот такой скрипт (лишнее убрал для простоты восприятия)
Мне нужно, чтобы скрипт в списке выбирал нужную строку.

Code: (clickermann) [Select]
// на сколько часов ставим работу перед сном, меняется юзером по необходимости
$hour_work = 4

// перемотка вниз, запускать с цифрой
SUB(scroll, $e)
   FOR($r=0, $r < $e)
      KEYPRESS(#DOWN)
      WAITMS(300)
   END_CYC
END_SUB

// ставим работу перед сном
SUB(sleep)
   LCLICK(176,489)  // заход в работу
   waiting()
   LCLICK(1003,872) // открыть выпадающий список
   WAITMS(100)
   $l = $hour_work - 1
   scroll($l) // выбираем время работы
   KEYPRESS(#ENTER)
   WAITMS(500)
   LCLICK(955,905) // погнали
   WAIT(3)
 END_SUB

sleep()
halt

Но бот всегда выбирает первую строчку, на которой открывается список по умолчанию. т.е. не дергает курсор вниз.
Подпрограмма scroll используется во всем моем боте повсеместно, но там я указываю параметр явно разными нужными цифрами (например scroll(3) ) и это работает, а конкретно в этом месте, параметр должен быть задан пользователем по его желанию, и чтобы не заставлять его ковыряться в файле с подпрограммами, явынес этот параметр в настройки.
Где я ошибся?

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: выбор строки в выпадающем меню
« Reply #1 on: January 27, 2015, 02:25:54 PM »
Скрипт отрабатывает верно, но видимо нажатия вниз уходят не туда. Возможно потеря фокуса.

Code: (clickermann) [Select]
// на сколько часов ставим работу перед сном, меняется юзером по необходимости
$hour_work = 4

// перемотка вниз, запускать с цифрой
SUB(scroll, $e)
   FOR($r=0, $r < $e)
      LOGWRITE ("Вниз")
      WAITMS(300)
   END_CYC
END_SUB

// ставим работу перед сном
SUB(sleep)
   $l = $hour_work - 1
   scroll($l) // выбираем время работы
END_SUB

sleep()
halt

Code: [Select]
15:23:59 Вниз
15:23:59 Вниз
15:24:00 Вниз

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: выбор строки в выпадающем меню
« Reply #2 on: January 27, 2015, 04:28:56 PM »
По моему это стандартная возможность виндового элемента "выпадающий список".
Может задержка мала в 100 мс. Вдруг в настройках "красивости" только 100 мс. разворачивает меню.


Kedrick

  • Освоившийся
  • **
  • Posts: 70
    • View Profile
Re: выбор строки в выпадающем меню
« Reply #3 on: January 27, 2015, 06:09:12 PM »
Вручную именно так и работает, как я написал в подпрограмме, все проверяю руками предварительно. Попробую с задержкой помудрить.
Не хотелось мышеклики мутить, это же еще пара десятков строк кода :)


PS поставил секунду и все поехало, спасибо )
« Last Edit: January 27, 2015, 06:35:42 PM by Kedrick »