Инструменты пользователя

Инструменты сайта


ru:autorun:documentation:directives

Директивы

Директивы выполняются на этапе предварительной обработки скрипта, т. е. до начала его фактического выполнения. Директива начинается с ключевого слова «Pragma».

Pragma AutorunFinalizeSection

Часть скрипта после этой директивы обрабатывается при завершении Total Commander. Если директива не используется, на этапе закрытия Total Commander не выполняются никакие действия. Использование этой директивы разрешено только в главном файле скрипта, в подключаемых файлах она будет проигнорирована.

Pragma AutorunBlockUnload

Блокирует выгрузку плагина (командой cm_UnloadPlugins) до полного закрытия Total Commander. Полезно для использования ShellExec с переключателем /T. Если директива отсутствует, блокировка выключена.

Pragma AutorunLanguage <ID>

Загружает заданный пользовательский язык сообщений из файла autorun.lng. Если эта директива не используется, будет использован язык, установленный в Total Commander. Если в файле перевод для этого языка отсутствует, будет использован язык по умолчанию (английский).

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

IDДвух-трехсимвольный идентификатор языка, принятый в языковых файлах Total Commander. Файл autorun.lng должен содержать секцию с таким же именем. Если секция не найдена, будет использован английский язык.


Pragma AutorunLoadInSubprocess

По умолчанию Autorun не запускает скрипт, если TC выполняется как отдельный процесс для поиска/просмотра/и т.д. Но вы можете изменить это поведение с помощью этой директивы.

Pragma Include <filename>

Загружает дополнительный файл со скриптом в формате Autorun. Это может быть библиотека нужных пользовательских функций или основной скрипт Autorun, вынесенный в другое место. Путь может быть записан как относительный (к каталогу Autorun), в нём также могут использоваться переменные окружения, существующие на момент запуска Total Commander. Внутренние переменные на момент обработки директив ещё не существуют, поэтому использовать их нельзя!

Содержимое файла вставляется в то место, где директива была встречена препроцессором. Если включаемый файл содержит глобальные переменные, логичнее расположить его в начале основного скрипта.

Также обратите внимание, что загрузка происходит на этапе препроцессинга, а значит, условия здесь ещё не работают.

Pragma IncludeOnce

Директива может находиться в начале подключаемого файла (в основном скрипте смысла не имеет). Сообщает препроцессору, что содержимое файла должно быть вставлено только один раз, что помогает избежать дублирования определения функций. Если директива отсутствует, содержимое файла будет вставлено столько раз, сколько будет встречена директива Include с именем этого файла.

Pragma LegacyExpressions

При использовании этой директивы в выражениях могут использоваться текстовые константы, не обёрнутые в кавычки. Это справедливо только для выражений (включая «вычисляемые строки»), но не для команд в командной записи.

:!: Директива добавлена только для упрощения перехода с версий 2.х, настоятельно рекомендуется переписать код и использовать кавычки в выражениях повсеместно. Это значительно уменьшит число возможных ошибок.

ru/autorun/documentation/directives.txt · Последнее изменение: 2024/03/27 13:26 — loopback

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki