Перейти на главную страничку сайта (список статей, файлы для скачивания)

ФОРУМ (здесь можно обсудить эту статью, а также саму программу AutoHotkey и проблемы её использования)

Проект перевода документации AutoHotkey: перечень переведённых статей и статей в работе.

Оригинал статьи в AutoHotkey.chm: "#Include / #IncludeAgain", в содержании - "#Directives" - "#Include/#IncludeAgain", 1.0.47.06.

Ник переводчика: YMP.

Настоящее имя переводчика: Юрий Попов.

#Include / #IncludeAgain

Обозначает место, куда перед выполнением скрипта будет вставлено содержимое указанного файла.

#Include FileOrDirName
#IncludeAgain FileOrDirName 

Параметры

FileOrDirName Имя файла или каталога.

Файл: если полный путь не указан, предполагается, что файл находится в стартовом/рабочем каталоге (исключение: ahk2exe предполагает, что файл находится в одном каталоге со скриптом). Путь и имя файла не должны содержать ссылок на переменные (кроме %A_ScriptDir%, %A_AppData% и %A_AppDataCommon%), двойных кавычек или шаблонов. Escape-последовательности, кроме случая точки с запятой (`;), не должны использоваться, но это и не нужно, поскольку такие символы как знак процента интерпретируются как литеральные. Замечание: SetWorkingDir не оказывает влияния на #Include, поскольку #Include обрабатывается до того как скрипт начнёт выполняться.

Каталог: укажите вместо файла, чтобы изменить рабочий каталог, который будет использоваться всеми последующими применениями #Include и FileInstall. Имя каталога не должно содержать переменных кроме %A_ScriptDir%, %A_AppData% и %A_AppDataCommon%. Замечание: изменение рабочего каталога таким способом не влияет на исходный рабочий каталог скрипта (A_WorkingDir). Для его изменения используйте SetWorkingDir вверху скрипта.

Примечания

Скрипт ведёт себя так, как если бы всё содержимое вставляемого файла физически находилось на месте директивы #Include (как будто вы скопировали и вставили его из этого файла). Вследствие этого, таким способом обычно нельзя объединить два изолированных скрипта в один нормально функционирующий (как можно этого добиться, смотрите здесь: www.autohotkey.com/forum/topic18545.html).

#Include гарантирует, что указанный файл вставляется только один раз, даже если в скрипте встретится несколько директив с этим файлом. Напротив, #IncludeAgain допускает многократные вставки одного и того же файла; в остальном она не отличается от #Include.

Перед именем файла можно поставить *i и один пробел, что позволит программе игнорировать неудачи при загрузке вставляемого файла. Например:

#Include *i SpecialOptions.ahk.

Эта опция должна использоваться, только если содержимое файла не имеет существенного значения для основной функциональности скрипта.

Строки скрипта, показываемые в его главном окне по команде ListLines или при выборе пункта меню View->Lines, всегда нумеруются в порядке их физического расположения в их собственных файлах. Другими словами включение нового файла изменит нумерацию в главном файле только на одну строку, а именно ту, где стоит сама директива #Include (исключение составляют компилированные скрипты, поскольку у них вставляемые файлы объединяются в один большой скрипт перед компиляцией).

#Include часто используется для загрузки функций, определённых во внешнем файле. В отличие от меток подпрограмм, функции могут вставляться в самое начало скрипта, никак не влияя на работу его секции автовыполнения.

Как и другие директивы, #Include не может выполняться условно. Другими словами, этот пример работать не будет:

if x = 1
    #Include SomeFile.ahk  ; Эта строка будет выполнена независимо от значения х.
    y = 2  ; А эта строка принадлежит If выше, поскольку директивы
           ; не могут принадлежать If.

Файлы могут вставляться автоматически (т.е. без использования #Include), если имеет место вызов библиотечной функции по имени, как это описано в статье "Функции".

Примеры

#Include C:\My Documents\Scripts\Utility Subroutines.ahk
#Include %A_ScriptDir%  ; Изменяет рабочий каталог для последующих
                        ; применений #Include и FileInstall.
#Include C:\My Scripts  ; То же, что выше, но каталог указан явно.

Перейти на главную страничку сайта (список статей, файлы для скачивания)

© 2007 http://www.script-coding.com При любом использовании материалов сайта обязательна ссылка на него как на источник информации, а также сохранение целостности и авторства материалов.