1 (изменено: goodroof35, 2020-11-09 20:38:37)

Тема: AHK зацикливание скрипта с изменением переменной

Добрый вечер! Не уверен, что это вообще возможно, но может быть кто-то знает.

Суть: Есть скрипт который размещает объявления на авито, все они однотипные, меняется только город размещения.
Вопрос: возможно ли зациклить этот скрипт, что бы в лайне с городом он каждый новый цикл вставлял новый город?)

Run, https://www.avito.ru/additem
Sleep 100
1:
ImageSearch, X, Y, 0, 0, 1600, 900, 1.bmp
If ErrorLevel = 0
{
Click, %X%, %Y%
goto, 2
}
If ErrorLevel = 1
{
goto, 1
}
2:
Sleep 1000
SendInput Облицовочные панели "Кирпич" (коричневый)
3:
ImageSearch, X, Y, 0, 0, 1600, 900, 2.bmp
If ErrorLevel = 0
{
Click, %X%, %Y%
goto, 4
}
If ErrorLevel = 1
{
goto, 3
}
4:
Sleep 200
ImageSearch, X, Y, 0, 0, 1600, 900, 3.bmp
If ErrorLevel = 0
{
Click, %X%, %Y%
goto, 5
}
If ErrorLevel = 1
{
goto, 4
}
5:
Sleep 200
ImageSearch, X, Y, 0, 0, 1600, 900, 4.bmp
If ErrorLevel = 0
{
    X+=15
    Y+=15
Click, %X%, %Y%
goto, 6
}
If ErrorLevel = 1
{
goto, 5
}
6:
Sleep 500
Send {Tab}
Sleep 50
Send {Enter}
Send {Down}
Send {Down}
Send {Down}
Send {Enter}
Sleep 150
ImageSearch, X, Y, 0, 0, 1600, 900, 7.bmp
If ErrorLevel = 0
{
    X+=25
    Y+=25
Sleep 250
Click, %X%, %Y%
}
Sleep 250
send ^{vk56}
Sleep 200
Send {Tab}
Sleep 300
SendInput 199
Sleep 200
Send {Tab}
Sleep 200
ImageSearch, X, Y, 0, 0, 1600, 900, 9.bmp
If ErrorLevel = 0
{
    X+=15
    Y+=15
Sleep 250
Click, %X%, %Y%
}
Sleep 1500
SendInput "1" "2" "3" "4" "5" "6"
Sleep 500
Send {Enter}
Sleep 150
Send {Tab}
Sleep 150
Send {Tab}
Sleep 150
Send {Tab}
Sleep 150
Send {Tab}
Sleep 1900
SendInput Москва, Россия
Sleep 2500
Send {Enter}
Sleep 1000
ImageSearch, X, Y, 0, 0, 1600, 900, 11.bmp
If ErrorLevel = 0
{
    X+=15
    Y+=15
Sleep 500
Click, %X%, %Y%
}
Sleep 1500
Send {Tab}
Sleep 50
Send {Tab}
Sleep 50
Send {Tab}
Sleep 50
Send {Tab}
Sleep 1500
ImageSearch, X, Y, 0, 0, 1600, 900, 12.bmp
If ErrorLevel = 0
{
    X+=15
    Y+=15
Click, %X%, %Y%
}
Sleep 200
7:
ImageSearch, X, Y, 0, 0, 1600, 900, 13.bmp
If ErrorLevel = 0
{
    X+=15
    Y+=15
Sleep 100
Click, %X%, %Y%
goto, 8
}
If ErrorLevel = 1
{
goto, 7
}
8:
Sleep 100
ImageSearch, X, Y, 0, 0, 1600, 900, 14.bmp
If ErrorLevel = 0
{
    X+=15
    Y+=15
Sleep 100
Click, %X%, %Y%
goto, 9
}
If ErrorLevel = 1
{
goto, 8
}
9:
ImageSearch, X, Y, 0, 0, 1600, 900, 15.bmp
If ErrorLevel = 0
{
    X+=15
    Y+=15
Sleep 100
Click, %X%, %Y%
}
Sleep 500
}

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

2

Re: AHK зацикливание скрипта с изменением переменной

Название города откуда будет браться? Если из переменной - никаких проблем нет, можно организовать цикл и подставлять переменные.

Слишком много однотипных 'ImageSearch, X, Y, 0, 0, 1600, 900, ??.bmp', которые легче вынести в отдельную функцию, это сократит код и увеличит удобочитаемость скрипта.

Win10x64, AHK v1.1.37.01 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101