Мой сценарий ломается в какой-то момент, я устранил все синтаксические ошибки, которые удалось обнаружить отладчику - PullRequest
0 голосов
/ 30 марта 2020

Это скрипт, который должен использовать инструмент windows, чтобы последовательно снимать скриншоты из онлайн-галереи. Если кто-то может определить проблему, это будет высоко ценится.

    #SingleInstance, Force

a := 112
name :=1
x:: Pause, Toggle
y:: ExitApp
Loop, a
{
    MouseClickDrag, Left, 1300, 210, 645, 140
    Sleep, 100
    MouseClick, Left, 1277, 1038, 0, 5
    sleep, 100
    MouseClick, Left, 838, 64, 0, 5
    sleep, 100
    SendInput, %name%
    name ++
    sleep, 100
    SendInput, {Enter}
    Sleep, 100
    MouseClickDrag, Left, 670, 13, 1393, 153
    Sleep, 100
    MouseClick, Left, 500, 490, 0, 5
    Sleep, 300
    MouseClick, Left, 500, 490, 0, 5
    SendInput, {Right}
}

1 Ответ

1 голос
/ 30 марта 2020

В этом две проблемы.

Во-первых, ваш l oop является недостижимым кодом.
Выполнение кода останавливается, когда встречается ваша первая метка горячей клавиши. Это называется Секция автоматического выполнения .

Во-вторых, l oop не принимает выражения для первого параметра. Требуется устаревший текстовый параметр. Таким образом, вы либо захотите использовать устаревший способ обращения к переменной, который будет %a%, но лично я бы побудил вас sh к использованию современного синтаксиса выражений и принудительному выражению этого параметра, запустив параметр выключен с %, за которым следует пробел. Итак, Loop, % a.
Чтобы узнать больше о устаревшем синтаксисе и синтаксисе выражений, см. эту страницу документации.


Вот ваш фиксированный скрипт:

#SingleInstance, Force

a := 112
name := 1
Sleep, 3000
Loop, % a
{
    MouseClickDrag, Left, 1300, 210, 645, 140
    Sleep, 100
    MouseClick, Left, 1277, 1038, 0, 5
    Sleep, 100
    MouseClick, Left, 838, 64, 0, 5
    Sleep, 100
    SendInput, % name
    name++
    Sleep, 100
    SendInput, {Enter}
    Sleep, 100
    MouseClickDrag, Left, 670, 13, 1393, 153
    Sleep, 100
    MouseClick, Left, 500, 490, 0, 5
    Sleep, 300
    MouseClick, Left, 500, 490, 0, 5
    SendInput, {Right}
}

;this return here ends the auto-execute section
;but of course, in this specific case it's totally
;useless since the next line is a hotkey label
;which would also stop the auto-execute section
return

;even though the code execution gets stuck inside the loop, 
;hotkeys can be specified down here
;they're created even before the auto-execute section starts
x::Pause, Toggle
y::ExitApp
...