Нужна помощь в написании скрипта? Close

Вы можете задать любой вопрос по программе Autohotkey в нашей группе Вконтакте. Если решение требует более высокой квалификации- можно обратиться непосредственно ко мне.

ВконтактеГруппа Вконтакте Электронная почтаЭлектронная почта Личная страницаСимаков Яков ВК
home icon Все разделы
comunity icon Нужна помощь?

Библиотеки функций (стандартная и пользовательская) -Autohotkey

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

%A_MyDocuments%\AutoHotkey\Lib\ - Пользовательская Библиотека. Эта папка является дополнительной и может полностью отсутствовать.

%A_ScriptName%.exe\Lib\ - Стандартная Библиотека. Также является дополнительной.

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

Это позволяет совмещать в файле Prefix.ahk как функцию Prefix_MyFunc, так и другие «родственные» функции, имена которых начинаются с Prefix_.

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

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

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

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

Автор перевода: ypppu
Источник: http://forum.script-coding.com/viewtopic.php?id=316
Под редакцией ahk-wiki.ru от 21.08.19