1 (изменено: kpweby, 2017-06-18 15:54:33)

Тема: AHK: Обновление страницы и выполнение действия.

Всем привет, я полный чайник в этом деле. Но очень нужна ваша помощь, очень буду благодарен.
Задача:
1.Обновить станицу браузера.
2.В активном окне ищет пиксель указанного цвета в 12 указанных прямоугольных областях экрана.
3.Если находит нужный пиксель, нажатие кнопки для данной области.
(2-3 пункт можно и по другому если можно проще и лучше. Например: на странице 12 картинок если находит с нужным цветом на 2 и 3 картинке нажимает на заданную кнопку для картинки 2 и 3)
все что пока сделал

NumPad1::Pause
NumPad0::
Loop, 1000
{
Send {F5}
Sleep, 8000
}

Не кричите и не ругайтесь, вы тоже в чем то не разбирались в свое время. Просто прошу помогите и объясните реально такое сделать или нет. Заранее спасибо.

2

Re: AHK: Обновление страницы и выполнение действия.

За какие «ранние»?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3 (изменено: kpweby, 2017-06-18 15:55:00)

Re: AHK: Обновление страницы и выполнение действия.

teadrinker
Ну начинается.)) 2 часа ночи все таки. Все исправил, так пойдет? А что по моему вопросу, есть идеи?))

4 (изменено: teadrinker, 2017-06-17 03:12:37)

Re: AHK: Обновление страницы и выполнение действия.

Не-а, сначала в правила оформления постов гляньте.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

5 (изменено: kpweby, 2017-06-18 15:55:26)

Re: AHK: Обновление страницы и выполнение действия.

teadrinker
Так? Тему я не знаю как назвать.

6

Re: AHK: Обновление страницы и выполнение действия.

Не, не прокатит.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

7 (изменено: kpweby, 2017-06-18 03:05:02)

Re: AHK: Обновление страницы и выполнение действия.

Что нужно сделать?

8

Re: AHK: Обновление страницы и выполнение действия.

Справка: вкладка [Contents]
→ Screen Management → PixelSearch,
→ Mouse and Keyboard → Click.

9

Re: AHK: Обновление страницы и выполнение действия.

kpweby, проставьте заглавные буквы и точки в своих сообщениях.

10

Re: AHK: Обновление страницы и выполнение действия.


NumPad1::Pause
NumPad0::
Loop, 200
{
PixelGetColor, Color, 191, 341
if Color = 0x2D792D
Click {106, 382}
Send {F5}
Sleep, 4000
}

Пожалуйста скажите как это все упорядочить и если можно пример.
Задача: 200 повторов и условия (если по заданным координатам нужный цвет, нажать в указанную область, после обновить страницу и подождать 4 сек.)

11

Re: AHK: Обновление страницы и выполнение действия.

stealzy
Все сделал.

12

Re: AHK: Обновление страницы и выполнение действия.


NumPad1::Pause
NumPad0::
Loop, 200
{
Send {F5}
PixelGetColor, Color, 30, 336
if Color = 0x005a00
Send {Click 106, 382}
Sleep, 5000
}

Все вроде работает, только есть один нюанс, немного запутался. У меня выходит: Обновилось -5 сек ждет - перед обновлением проверят на цвет и нажимает если есть. А мне нужно: Обновить - сразу проверить на цвет, если есть, нажать - подождать 5 сек и обновить. Скажите что поменять или что дописать.

13 (изменено: Alectric, 2017-06-18 18:18:27)

Re: AHK: Обновление страницы и выполнение действия.

Тебе нужно узнать для чего нужны скобочки {}.

if Color = 0x005a00
{
  Send {Click 106, 382}
  Sleep, 5000
}

...

Я неправильно тебя понял. Нужно ждать пока закончится обновление страницы (она же не моментально загружается).

Возможно простого "sleep,200" хватит для этого.

Loop, 200
{
  Send {F5}
  sleep,200
  PixelGetColor, Color, 3O, 336
  if Color = 0x005a00
  {
    Send {Click 106, 382}
    Sleep, 5000
  }
}
Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

14 (изменено: Alectric, 2017-06-18 20:37:10)

Re: AHK: Обновление страницы и выполнение действия.

stealzy пишет:

Предлагаете обновлять с частотой 5 раз в секунду?

Я ничего не предлагаю, мои экстрасенсорные способности говорят что ТСу это нужно.

ТС пишет:

А мне нужно: Обновить - сразу проверить на цвет, если есть, нажать - подождать 5 сек и обновить. Скажите что поменять или что дописать.

stealzy пишет:

не всякий сайт загрузится за 200 мс.

Сойдёт и так, не думаю что ТСу будет нужен этот скрипт через неопределённое время.

Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

15

Re: AHK: Обновление страницы и выполнение действия.

stealzy, Alectric Спасибо за помощь.

stealzy пишет:

Сойдёт и так, не думаю что ТСу будет нужен этот скрипт через неопределённое время.

Делаю скрипт лично для себя, сайт уже много лет работает, надеюсь еще столько же будет существовать.

16

Re: AHK: Обновление страницы и выполнение действия.

Еще хотел бы узнать как прописать правильно?

Loop, 200
{
PixelGetColor, Color, 222, 373   
if Color = 0x005a00
ControlClick, x333 y390, WinTitle
}

По заданным координатам цвета, если соответствует.
PixelGetColor, Color, 222, 373   
if Color = 0x005a00
Сразу нажало суда ControlClick, x333 y390, WinTitle.

17

Re: AHK: Обновление страницы и выполнение действия.

Loop
{
MouseMove, 228, 370
PixelGetColor, color, 228, 388
if color = 0x005A00
 {
 MouseClick, left, 320, 388
 Sleep 3000
 }

Сделал то что хотел. Не могу понять как сделать что бы после этого сделало это.


Loop
}
MouseMove, 430 370
PixelGetColor, color, 430, 370
if color = 0x005A00
 {
 MouseClick, left, 535, 388
 Sleep 3000
 }

Или объясните, как их объединить.

18

Re: AHK: Обновление страницы и выполнение действия.

kpweby пишет:

Сделал то что хотел. Не могу понять как сделать что бы после этого сделало это.

Делай это а потом это, и лишнего не делай .
У цикла должен быть начало и конец (в ahk это "{" и "}"). А мышкой можно и не двигать, наверно.

19 (изменено: kpweby, 2017-06-22 20:23:07)

Re: AHK: Обновление страницы и выполнение действия.


NumPad1::Pause
NumPad0::
Loop
{
Loop, 1
{
PixelGetColor, color, 228, 388
if color = 0x005A00
Send {Click 404, 390}
}
Sleep 80
Loop, 1
{
PixelGetColor, color, 430, 370
if color = 0x005A00
Send {Click 606, 390}
}
Sleep 83
Loop, 1
{
PixelGetColor, color, 637, 379
if color = 0x005A00
Send {Click 812, 390}
}
Sleep 87
Loop, 1
{
PixelGetColor, color, 840, 380
if color = 0x005A00
Send {Click 1013, 390}
}
Sleep 89
Loop, 1
{
PixelGetColor, color, 1041, 380
if color = 0x005A00
Send {Click 1210, 390}
}
Sleep 88
Loop, 1
{
PixelGetColor, color, 25, 621
if color = 0x005A00
Send {Click 198, 630}
}
Sleep 84
Loop, 1
{
PixelGetColor, color, 228, 621
if color = 0x005A00
Send {Click 400, 630}
}
Sleep 82
Loop, 1
{
PixelGetColor, color, 430, 621
if color = 0x005A00
Send {Click 605, 630}
}
Sleep 85
Loop, 1
{
PixelGetColor, color, 635, 621
if color = 0x005A00
Send {Click 807, 630}
}
Sleep 86
Loop, 1
{
PixelGetColor, color, 840, 621
if color = 0x005A00
Send {Click 1010, 630}
}
Sleep 82
Loop, 1
{
PixelGetColor, color, 1044, 621
if color = 0x005A00
Send {Click 1215, 630}
}
Sleep 3000
Send {F5}
}

Не могу понять чего то не хватает или не правильно ставлю это

}
Sleep 3000
Send {F5}
}

Задача простая пройтись по координатам, выполнить, потом подождать 3 сек, обновить, начать снова.
А выходить, первый раз как нужно сделает, потом обновляется и начинает искать только через 3 сек перед обновлением, а нужно сразу.

Может в другое место нужно поставить или как то по другому сделать подскажите пожалуйста.

20

Re: AHK: Обновление страницы и выполнение действия.


NumPad1::Pause
NumPad0::
Loop
{
  Loop
  {
    PixelGetColor, color, 228, 388
    if color = 0x005A00
    {
      Send {Click 404, 390}
      break
    }
  }
  Sleep 80
  Loop
  {
    PixelGetColor, color, 430, 370
    if color = 0x005A00
    {
      Send {Click 606, 390}
      break
    }
  }
  Sleep 83
  Loop
  {
    PixelGetColor, color, 637, 379
    if color = 0x005A00
    {
      Send {Click 812, 390}
      break
    }
  }
  Sleep 87
  Loop
  {
    PixelGetColor, color, 840, 380
    if color = 0x005A00
    {
      Send {Click 1013, 390}
      break
    }
  }
  Sleep 89
  Loop
  {
    PixelGetColor, color, 1041, 380
    if color = 0x005A00
    {
      Send {Click 1210, 390}
      break
    }
  }
  Sleep 88
  Loop
  {
    PixelGetColor, color, 25, 621
    if color = 0x005A00
    {
      Send {Click 198, 630}
      break
    }
  }
  Sleep 84
  Loop
  {
    PixelGetColor, color, 228, 621
    if color = 0x005A00
    {
      Send {Click 400, 630}
      break
    }
  }
  Sleep 82
  Loop
  {
    PixelGetColor, color, 430, 621
    if color = 0x005A00
    {
      Send {Click 605, 630}
      break
    }
  }
  Sleep 85
  Loop
  {
    PixelGetColor, color, 635, 621
    if color = 0x005A00
    {
      Send {Click 807, 630}
      break
    }
  }
  Sleep 86
  Loop
  {
    PixelGetColor, color, 840, 621
    if color = 0x005A00
    {
      Send {Click 1010, 630}
      break
    }
  }
  Sleep 82
  Loop
  {
    PixelGetColor, color, 1044, 621
    if color = 0x005A00
    {
      Send {Click 1215, 630}
      break
    }
  }
  Sleep 3000
  Send {F5}
  Sleep 500
}
Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

21

Re: AHK: Обновление страницы и выполнение действия.

Alectric
Очень сильно благодарен, пол дня убил не мог понять в чем дело, такие велосипеды изобретал, а тут вот оно как))) Еще раз спасибо.

Пользуйтесь, если кому нужно, скрипт рабочий.

22 (изменено: kpweby, 2017-06-23 23:38:35)

Re: AHK: Обновление страницы и выполнение действия.

А подскажи те как реализовать такую идею.
Есть 11 PixelGetColor с разными координатами


PixelGetColor, color, 228, 388
PixelGetColor, color, 433, 370
PixelGetColor, color, 637, 379
PixelGetColor, color, 840, 380
PixelGetColor, color, 1041, 380
PixelGetColor, color, 25, 621
PixelGetColor, color, 228, 621
PixelGetColor, color, 430, 621
PixelGetColor, color, 635, 621
PixelGetColor, color, 840, 621
PixelGetColor, color, 1044, 621

if color = 0x005A00
Если такой цвет в одном из PixelGetColor нажать MouseClick, left, 120, 302.
Но проблема в том, что нужный цвет в PixelGetColor может быть только в одном, или в трех, а может и во всех.
Сделать так что бы при нахождении хоть в одной точке цвета нажалась  MouseClick, left, 120, 302.


Loop
{
PixelGetColor, color, 228, 388
PixelGetColor, color, 433, 370
PixelGetColor, color, 637, 379
PixelGetColor, color, 840, 380
PixelGetColor, color, 1041, 380
PixelGetColor, color, 25, 621
PixelGetColor, color, 228, 621
PixelGetColor, color, 430, 621
PixelGetColor, color, 635, 621
PixelGetColor, color, 840, 621
PixelGetColor, color, 1044, 621
if color = 0x005A00
MouseClick, left, 120, 302
}

Я понимаю что это не работает, это просто идея. PixelSeach не подходит изза большой области поиска и долгой обработки.
Как это можно реализовать?

23 (изменено: stealzy, 2017-06-24 01:45:12)

Re: AHK: Обновление страницы и выполнение действия.

Массивы и функции.

coords:=[[228, 388], [433, 370], [637, 379], [840, 380], [1041, 380], [25, 621], [228, 621], [430, 621], [635, 621], [840, 621], [1044, 621]]
Loop {
	if ColorExist(0x005A00, coords)
		MouseClick, left, 120, 302
}


ColorExist(searchColor, coordinates) {
	for i, coordinate in coordinates
	{
		PixelGetColor, pixelColor, % coordinate[1], % coordinate[2]
		if (pixelColor = searchColor)
			Return true
	}
	Return false
}

24

Re: AHK: Обновление страницы и выполнение действия.

stealzy
Cпасибо за помощь.

Не подскажите еще один вопрос. В хроме на странице нужно постоянно искать определенный текст в указанной области и остановить скрипт при нахождении. Пока не пойму как это реализовать.

25

Re: AHK: Обновление страницы и выполнение действия.

Ответ: никак. WinHttpRequest, Selenium.