1

Тема: AutoHotkey: стандартные и пользовательские библиотеки функций

v1.0.47+
Скрипт может вызвать функцию из внешнего файла без необходимости использования #Include.

Необходим файл с названием, совпадающим с названием функции, поскольку функция должна существовать в одном из следующих каталогов:

%A_MyDocuments%\AutoHotkey\Lib\ ; библиотека пользователя
путь_к_запущенному_в_данный_момент_AutoHotkey.exe\Lib\ ; стандартная библиотека

Например, когда скрипт вызывает несуществующую функцию MyFunc(), программа ищет файл по имени MyFunc.ahk в пользовательской библиотеке. Если его там нет, она ищет его в стандартной библиотеке. Если соответствие всё еще не найдено, а название функции содержит символ подчёркивания (например, MyPrefix_MyFunc), программа ищет в библиотеках файл по имени MyPrefix.ahk и загружает это, если он существует. Это позволяет MyPrefix.ahk содержать и функцию MyPrefix_MyFunc, и другие функции, названия которых начинаются с MyPrefix_.

Хотя библиотечный файл вообще содержит только одну функцию того же самого названия как само имя файла, он может также содержать частные функции и подпрограммы, которые вызываются только здесь. Однако, у таких функций должны быть чётко отличные названия, потому что они всё ещё будут в глобальном пространстве имен; то есть, они будут вызываемыми отовсюду в скриптах.

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

Компилятор скриптов (ahk2exe) также поддерживает библиотечные функции. Однако, это требует, чтобы в каталоге выше каталога компилятора существовала копия AutoHotkey.exe (что обычно и имеет место). Если AutoHotkey.exe отсутствует, компилятор будет работать, но библиотечные функции не будут включены автоматически.

Функции, включённые из библиотеки, работают точно так же, как и другие функции, потому что они предварительно загружены перед тем, как скрипт начинает выполняться.

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