Проблемы, о которых сообщает редактор шагов
Редактор шагов проверяет шаги по мере редактирования. Его сообщения появляются в четырёх местах: под полем, в виде метки в строке шага, как Шаги не сохранены: под списком и вместо списка, когда шаги нельзя показать строками.
Под полем
Поле с проблемой получает красную рамку и сообщение под собой прямо во время ввода. Пока в поле введён текст, не прошедший проверку, шаги не сохраняются: под списком отображается Шаги не сохранены: шаг 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 нет fn | call шага 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, ни false | not содержит что-то, кроме 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 вне блока if | else без открытого if перед ним. |
| шаг N — второй else в одном блоке if | В блоке if два шага else. |
| шаг N закрывает блок, который не открыт | end_if или end_repeat без соответствующего открытого блока. |
| шаг N открывает блок, который нигде не закрывается | if или repeat без end_if или end_repeat. |
Уведомления вокруг редактора
| Уведомление | Значение |
|---|---|
| В этом режиме ничего не настроено, поэтому при запуске ничего не произойдёт. Содержимое режима «режим» сохраняется, но не выполняется. | Для Формат выбран пустой режим, а в другом режиме есть содержимое. Нажмите Использовать «режим», чтобы переключиться обратно (Шаги, скрипт и AutoHotkey). |
| Поддержка AutoHotkey отключена в общих настройках, поэтому это действие ничего не делает, пока она не будет включена. | Действие выполняется как AutoHotkey, а поддержка AutoHotkey отключена (AutoHotkey). |
| Ни один зарегистрированный плагин не предоставляет движок «движок», поэтому при запуске этот скрипт пропускается. Добавьте плагин на странице «Плагины» или выберите другой режим. | Действие выполняется движком плагина, а этот плагин не зарегистрирован (Плагины). |