Перейти к основному содержимому

Проблемы, о которых сообщает редактор шагов

Редактор шагов проверяет шаги по мере редактирования. Его сообщения появляются в четырёх местах: под полем, в виде метки в строке шага, как Шаги не сохранены: под списком и вместо списка, когда шаги нельзя показать строками.

Под полем​

Поле с проблемой получает красную рамку и сообщение под собой прямо во время ввода. Пока в поле введён текст, не прошедший проверку, шаги не сохраняются: под списком отображается Шаги не сохранены: шаг N содержит недопустимое поле, и действие сохраняет свои последние сохранённые шаги, пока вы не исправите поле (Шаги не сохранены).

Пустое поле не показывает сообщения и не мешает сохранению: шаги сохраняются с пустым полем. Когда действие выполняется, шаг с пустым числовым полем, полем «истина или ложь» или полем окна останавливает действие на этом месте, а вывод Система в консоли сообщает, что у аргумента неверный тип. Пустое текстовое поле выполняется как пустой текст, что для некоторых встроенных функций (имя файла, заголовок искомого окна) означает, что шаг ничего не делает.

СообщениеПричинаИсправление
Это значение обязательно.Имя переменной в шаге Задать переменную пусто.Введите имя.
Введите целое число (десятичное или шестнадцатеричное 0x), именованную константу либо $переменную.Поле целого числа или счётчик Раз содержит что-то другое, например 2.5 или ten.Введите цифры с необязательным знаком минус, 0x и шестнадцатеричное число или именованную константу, например VirtualKey.F5 (Параметры шагов).
Именованной константы с таким именем нет. Проверьте написание и регистр букв, как в VirtualKey.MediaPlayPause.Поле целого числа или числа либо счётчик Раз содержит имя с точкой, например VirtualKey.Mediaplaypause, которое не является именованной константой.Исправьте имя. Регистр букв важен. Имена перечислены на странице Именованные константы.
Введите число или $переменную.Числовое поле содержит что-то, что не является числом.Используйте точку как десятичный разделитель, без разделителя тысяч: 1234.5.
Введите true или false либо $переменную.Значение типа Истина или ложь в шаге Задать переменную содержит что-то другое.Введите true или false.
Шаг не может выполнять встроенную функцию внутри аргумента. Сначала вынесите её в переменную.Поле содержит вызов встроенной функции, у которого что-то есть в скобках, например WindowGetTitle($w).Нажмите Вынести в переменную под полем (Параметры шагов). Если эта ссылка не предлагается, добавьте шаг с этим вызовом сами, сохраните его результат и используйте переменную.
Используйте буквы, цифры и _; имя не должно начинаться с цифры.Имя переменной в Сохранить результат как или Переменная содержит другой символ или начинается с цифры.Переименуйте её (Переменные).
Это имя зарезервировано. Выберите другое.Имя переменной — if, else, for, true или false.Выберите другое имя.
Выберите встроенную функцию, результат которой проверяется.В условии, для которого задано Результат встроенной функции, ещё нет встроенной функции.Нажмите Выберите встроенную функцию… и выберите её.
«…» нельзя использовать в сочетании клавиш.В поле Клавиши введена клавиша, которую нельзя назвать в сочетании клавиш, например мультимедийная.Используйте другую клавишу или шаг Нажать и отпустить клавишу (KeyboardPressKey) (Мультимедийные клавиши).

Вынести в переменную не предлагается, когда вызов нельзя прочитать (например, если он содержит операторы вроде +), а также в условии Повторять, пока или Повторять до.

Одно примечание проблемой не является: Это значение хранится как текст и не выполняется. Чтобы сохранить результат встроенной функции, используйте «Сохранить результат как» в шаге этой функции. Оно появляется под значением типа Текст шага Задать переменную, если это значение — вызов встроенной функции, у которого что-то есть в скобках, например WindowGetTitle($w). Значение сохраняется как эти символы. Вызов с пустыми скобками, например ClipboardGetText(), примечания не получает: это значение из меню значений (Переменные).

В строке шага​

МеткаПричинаИсправление
Не внутри повтораШаг Выйти из цикла находится вне всех повторов, обычно после перемещения. Пока он там, действие не может выполняться.Верните его внутрь повтора или удалите (Повторение шагов).

Шаги не сохранены​

Шаги не сохранены: с последующей причиной означает, что редактор не смог записать ваши строки обратно в действие. Пока вы это не исправите, действие сохраняет свои последние сохранённые шаги, а остальные правки ждут.

ПричинаПричина возникновенияИсправление
для условия не выбрана встроенная функцияДля Если или Повторять, пока/Повторять до задано Результат встроенной функции без встроенной функции.Выберите встроенную функцию или переключите Проверка на другой вид.
value условия — вызов (…); сначала его нужно присвоить переменнойЗначение условия или одна из сторон сравнения содержит вызов встроенной функции с аргументами.Добавьте выше шаг, выполняющий этот вызов с Сохранить результат как, и используйте переменную в условии.
аргумент N функции функция — вызов (…); сначала его нужно присвоить переменнойПоле шага содержит вызов встроенной функции с аргументами. N считает поля шага начиная с 1.Вынести в переменную (Параметры шагов).
шаг N содержит недопустимое полеПоле шага N содержит введённый текст, не прошедший проверку (Под полем): abc в поле целого числа или числа, имя, не являющееся именованной константой, поле «истина или ложь» с другим текстом, недопустимый счётчик Раз или недопустимое имя переменной. Пустое поле этого никогда не вызывает. N считает шаги начиная с 1.Исправьте поле, под которым стоит сообщение.

Когда шаги нельзя показать списком​

Иногда шаги существуют в виде текста, который список шагов показать не может: их изменили в просмотре кода, импортировали или написали вручную в файле конфигурации. Тогда вместо списка выводится:

Эти шаги используют управляющие конструкции, которые нельзя показать списком (причина). Их можно редактировать как код в расширенном режиме.

Так бывает в любом редакторе шагов: действия, фрагмента, Песочница, действий «до» и «после» группы приложений и глобального события.

Шаги по-прежнему выполняются как есть; редактор лишь не может показать их строками. В расширенном режиме просмотр кода показывает текст, и это единственный способ его изменить (Просмотр кода). Как только у текста снова появляется форма списка, строки возвращаются. Текстовая форма описана на странице Движок «Шаги».

Причина — одна из перечисленных ниже. Слова курсивом обозначают часть вашего текста, которую цитирует причина.

Текст целиком​

ПричинаЧто исправить в тексте
шаги не являются допустимым TOML: сообщениеТекст не является допустимым TOML. Сообщение указывает, где ошибка.
нет массива [[steps]]В тексте нет таблиц [[steps]].
ключ верхнего уровня ключ не является простым значениемКлюч выше первой [[steps]] содержит таблицу или список. Там могут стоять только простые значения.
шаг использует op op, у которого нет формы спискаop шага — такой, который список не может показать.
шаг использует форму goto для if, у которой нет формы спискаif выполняет переход через then_goto или else_goto, или существует шаг goto. Перепишите его с блоком if и end_if или продолжайте редактировать как текст.
у шага if нет условияУ шага if нет condition.

Один шаг​

ПричинаЧто исправить в тексте
у шага call нет fnШаг call не указывает встроенную функцию.
у шага set нет localШаг set не указывает переменную.
у call шага set нет fncall шага set не указывает встроенную функцию.
value шага set не является одиночным значениемvalue шага set — список или таблица, отличная от значения ({ fn = "Name" }) или именованной константы ({ const = "Namespace.Name" }).
value шага set — текст текст, который список сохранил бы обратно как результат этого встроенного методаvalue шага set — текст в кавычках, читающийся как значение, например "ClipboardGetText()". Чтобы сохранить результат этого значения, запишите его как { fn = "ClipboardGetText" }; иначе измените текст.
у шага set нет ни value, ни callШагу set нечего сохранять.
шагу repeat нужен ровно один из times, while или untilУ шага repeat нет ни одного из них или их больше одного.
times шага repeat — число, именованная константа или вызов встроенного метода, сохранённые как текст, которые список сохранил бы обратно как число, константу или результат методаtimes записан в кавычках, например "3", "MouseButton.Middle" или "MouseGetCursorX()". Запишите число без кавычек, константу как { const = "MouseButton.Middle" }, а значение как { fn = "MouseGetCursorX" }.
times шага repeat не является ни целым числом, ни текстомtimes — например, 2.5 или true.
условие не является таблицейcondition, while или until не является таблицей.
условию нужен ровно один из fn, value или compareВ условии нет ни одного из них или их больше одного.
not условия не равно ни true, ни falsenot содержит что-то, кроме true или false.
fn условия пустоfn условия — пустой текст.
compare условия не является поддерживаемым сравнениемcompare не является одним из ==, !=, <, <=, >, >=.
сравнению нужны и left, и rightВ сравнении нет left или right.
операнд условия не является одиночным значениемvalue, left или right — список или таблица, отличная от значения или именованной константы.
условие сравнивает текст текст, который список сохранил бы обратно как число, именованную константу, true/false или результат встроенного методаСравниваемое значение записано в кавычках, но читается как число, именованная константа, true/false или значение, например "3", "MouseButton.Left" или "ClipboardGetText()". Список не может сохранить его как текст. Запишите значение как { fn = "ClipboardGetText" } или измените текст.
args не является массивомargs шага — не список.
аргумент не является одиночным значениемАргумент — список или таблица, отличная от значения ({ fn = "Name" }) или именованной константы ({ const = "Namespace.Name" }).
значение указывает константу текст, которой не существует{ const = "…" } содержит имя, не являющееся именованной константой, или не текст. Исправьте имя; регистр букв важен.

Несогласованные блоки​

N — позиция шага, считая с 1.

ПричинаЧто исправить в тексте
шаг N — else вне блока ifelse без открытого if перед ним.
шаг N — второй else в одном блоке ifВ блоке if два шага else.
шаг N закрывает блок, который не открытend_if или end_repeat без соответствующего открытого блока.
шаг N открывает блок, который нигде не закрываетсяif или repeat без end_if или end_repeat.

Уведомления вокруг редактора​

УведомлениеЗначение
В этом режиме ничего не настроено, поэтому при запуске ничего не произойдёт. Содержимое режима «режим» сохраняется, но не выполняется.Для Формат выбран пустой режим, а в другом режиме есть содержимое. Нажмите Использовать «режим», чтобы переключиться обратно (Шаги, скрипт и AutoHotkey).
Поддержка AutoHotkey отключена в общих настройках, поэтому это действие ничего не делает, пока она не будет включена.Действие выполняется как AutoHotkey, а поддержка AutoHotkey отключена (AutoHotkey).
Ни один зарегистрированный плагин не предоставляет движок «движок», поэтому при запуске этот скрипт пропускается. Добавьте плагин на странице «Плагины» или выберите другой режим.Действие выполняется движком плагина, а этот плагин не зарегистрирован (Плагины).