Поиск кнопки и нажатие

Помощь в написании скриптов
kruck
Posts: 1
Joined: 31 May 2023, 02:57

Поиск кнопки и нажатие

Post by kruck » 31 May 2023, 05:06

Доброго времени суток, подскажите, пожалуйста, как улучшить работу скрипта?

Code: Select all

Alt & 6::
loop{
 sleep, 300
 imgFound := false
 while(imgFound = false)
 {
  imageSearch, x, y , 0, 0, 1920,1080, next2.png
	x := x + 20
	y := y + 20
  if(x <> "")
  {
   click, %x%, %y%
   imgFound := true
  }
 }}
return

Alt & 9::
Reload
Есть вот такой код, но по какой-то причине он определяет картинку через раз, не всегда срабатывает. Картинка - кнопка на сайте. Может есть какая-то возможность сделать обнаружение этой кнопки не по картинке?
Сама картинка:
Image
Пытался и вырезать какую-то её часть, пытался оставить её без фона, все равно срабатывает через раз.

mcl
Posts: 356
Joined: 04 May 2018, 16:35

Re: Поиск кнопки и нажатие

Post by mcl » 01 Jun 2023, 10:14

kruck wrote: Доброго времени суток, подскажите, пожалуйста, как улучшить работу скрипта?
Стоит уточнить, не меняется ли кнопка при наведении (цвет, контур, анимация) – если курсор мыши после Click останется на месте появления будущей кнопки, ImageSearch может её и не найти. После имени файла можно добавить variation – next2.png *10 – иногда цвета на экране совсем чуть-чуть отличаются.

Общие моменты:
  • Sleep стоит перенести внутрь While-цикла;
  • от While-цикла можно вообще избавиться, если заменить (или добавить после) imgFound := true на Break;
  • изменение переменных x/y логичнее перенести внутрь If;
  • ImageSearch по возможности ограничить область, а не сканировать весь экран;
  • ImageSearch каждый раз грузит картинку с диска заново; можно загрузить картинку (LoadPicture) один раз перед циклом и использовать её как HBITMAP:%handle% вместо имени файла.
Может есть какая-то возможность сделать обнаружение этой кнопки не по картинке?
Можно попробовать добираться до кнопки через клавиатуру (скажем, путём множественных нажатий Tab), но, поскольку кнопка на сайте, ещё лучше отыскивать её js-скриптом через консоль браузера.
github://oGDIp - GDI+ wrapper for AHK v1.1

Post Reply

Return to “Помощь”