Директивы AutoIt3Wrapper

Директивы AutoIt3Wrapper позволяют установить опции компилятора в скрипте. Для этого установите расширенный SciTE4AutoIt3 со страницы загрузки. Компиляция с помощью AutoIt3Wrapper станет доступной из меню редактора SciTE и из контекстного меню в проводнике. Директивы нужно добавлять в начало скрипта в новую строку, смотрите пример.


Таблица описания директив

Установки AutoIt3
#AutoIt3Wrapper_testing=n;(y/n) Пропустить Tidy, Obfuscator & cvsWrapper для скорости во время тестирования. По умолчанию n
#AutoIt3Wrapper_UseX64=n;(y/n) Использовать X64 версию AutoIt3_x64 или AUT2EXE_x64. По умолчанию n
#AutoIt3Wrapper_Version=p;(b/p) Использовать Бета или Релиз AutoIt3 и AUT2EXE. По умолчанию p
#AutoIt3Wrapper_Run_Debug_Mode=n;(y/n) Запустить скрипт в режиме отладки с выводом в консоль. По умолчанию n
#AutoIt3Wrapper_Run_SciTE_Minimized=n;(y/n) Свернуть SciTE пока скрипт запущен. По умолчанию n
#AutoIt3Wrapper_Run_SciTE_OutputPane_Minimized=n;(y/n) Сворачивает панель вывода SciTE при выполнении скрипта. По умолчанию n
#AutoIt3Wrapper_Autoit3Dir=;По желанию указать базовый каталог установки AutoIt3.
#AutoIt3Wrapper_Aut2exe=;По желанию указать Aut2exe.exe для использования с этим скриптом
#AutoIt3Wrapper_AutoIt3=;По желанию указать Autoit3.exe для использования с этим скриптом
Установки Aut2exe
#AutoIt3Wrapper_Icon=;Имя файла используемой иконки для EXE
#AutoIt3Wrapper_OutFile=;Имя выходного файла exe/a3x.
#AutoIt3Wrapper_OutFile_Type=exe;a3x=небольшой AutoIt3 файл; exe=Автономные исполняемые (По умолчанию)
#AutoIt3Wrapper_OutFile_X64=;Имя выходного файла для X64.
#AutoIt3Wrapper_Compression=2;Параметр сжатия 0-4 0=низкий 2=нормальный 4=высокий. По умолчанию=2
#AutoIt3Wrapper_UseUpx=y;(y/n) Сжатие скомпилированного EXE. По умолчанию y
#AutoIt3Wrapper_UPX_Parameters=;Указать параметры сжатия для UPX.
#AutoIt3Wrapper_Change2CUI=n;(y/n) Изменить выход программы CUI (консоль) вместо GUI. По умолчанию n
#AutoIt3Wrapper_Compile_both=n;(y/n) Компилировать оба варианта X86 и X64 за раз. По умолчанию n
Информация устанавливаемая в ресурсах компилируемой программы
#AutoIt3Wrapper_Res_Comment=;Комментарии к программе
#AutoIt3Wrapper_Res_Description=;Описание программы (всплывает при наведении)
#AutoIt3Wrapper_Res_Fileversion=;Версия программы (всплывает при наведении)
#AutoIt3Wrapper_Res_FileVersion_AutoIncrement=n;(y/n/p)Автоматическое увеличение номера версии при каждой компиляции. По умолчанию n. P=Prompt - c вопросительным диалоговым окном при компиляции, хотите ли увеличить номер версии
#AutoIt3Wrapper_Res_ProductVersion=;Версия продукта. По умолчанию используется версия AutoIt3.
#AutoIt3Wrapper_Res_Language=2057;Код языка ресурсов. По умолчанию 2057=Английский (Великобритания)
#AutoIt3Wrapper_Res_LegalCopyright=;Авторские права (здесь можно указать автора программы)
#AutoIt3Wrapper_res_requestedExecutionLevel=none;Уровни привилегий: None, asInvoker (как родительский), highestAvailable (наивысшими доступными текущему пользователю) или requireAdministrator (с правами администратора). (По умолчанию none)
#AutoIt3Wrapper_res_Compatibility=none;Vista,Windows7. Совместимость, оба разрешения через запятую (По умолчанию none)
#AutoIt3Wrapper_Res_SaveSource=n;(y/n) Сохранить копию скрипта исходника в ресурсах EXE. По умолчанию n
Если #AutoIt3Wrapper_Res_SaveSource=y, то содержание скрипта исходника зависит от #AutoIt3Wrapper_Run_Obfuscator и директив #obfuscator_parameters :

    Если #AutoIt3Wrapper_Run_Obfuscator=y то
        Если #obfuscator_parameters=/STRIPONLY то скрипт исходник обработается в скрипте и в includes
        Если #obfuscator_parameters=/STRIPONLYINCLUDES то скрипт исходник содержит оригинальный скрипт, обработается только includes
        С любыми другими параметрами, директива #AutoIt3Wrapper_Res_SaveSource игнорируется, так как обфускация предназначена для защиты исходника и соответственно не будет помещать исходник в ресурсы скомпилированного скрипта
    Если #AutoIt3Wrapper_Run_Obfuscator=n или не установлена, то скрипт исходник является оригинальным
Autoit3Wrapper указывает поведение директивы #AutoIt3Wrapper_Res_SaveSource в консоль SciTE во время компиляции
Подробности смотрите в справке SciTE4AutoIt3, чтобы узнать больше о параметрах обфускатора

#AutoIt3Wrapper_Res_Field=;Свободный формат область имени|область значения
Свободные для заполнения области ресурсов ... максимум 15
Вы можете использовать следующие переменные:
%AutoItVer% версия AutoIt3
%date% = дата на ПК в кратком формате
%longdate% = дата на ПК в полном формате
%time% = время на ПК
например: #AutoIt3Wrapper_Res_Field=AutoIt Version|%AutoItVer%
подробнее другие поля смотрите в примере

#AutoIt3Wrapper_Res_Icon_Add=; Filename[,LanguageCode] - формат для добавления иконки.
#AutoIt3Wrapper_Res_Icon_Add=icons\1.ico - добавляет дополнительные иконки ICO-файлы, чтобы ресурсы можно было использовать, например с функцией TraySetIcon(@ScriptFullPath, 5) и другими.
Порядок имён ICO-файлов, которые будут добавлены, первый из них под номером 5 (имя 201), потом 6 (имя 202) и т.д.

#AutoIt3Wrapper_Res_File_Add=; Filename[,Section [,ResName[,LanguageCode]]] - формат для добавления файла.
Установки Tidy (Читабельность скрипта)
#AutoIt3Wrapper_Run_Tidy=n;(y/n) Запускать Tidy перед компиляцией. По умолчанию n
#AutoIt3Wrapper_Tidy_Stop_OnError=y;(y/n) Продолжить, если только предупреждения. По умолчанию y
#Tidy_Parameters=;Параметры смотрите в файле справки SciTE\Scite4AutoIt3.chm
Установки Obfuscator (Обфускатор)
#AutoIt3Wrapper_Run_Obfuscator=n;(y/n) Запускать Obfuscator перед компиляцией. По умолчанию n
#obfuscator_parameters=;Параметры смотрите в файле справки SciTE\Scite4AutoIt3.chm
Установки AU3Check
#AutoIt3Wrapper_Run_AU3Check=y;(y/n) Запускать au3check перед компиляцией. По умолчанию y
#AutoIt3Wrapper_AU3Check_Parameters=;Параметры Au3Check
#AutoIt3Wrapper_AU3Check_Stop_OnWarning=;(y/n) n - Продолжить на предупреждениях.(По умолчанию) y - Всегда останавливаться на предупреждениях
#AutoIt3Wrapper_PlugIn_Funcs=;Укажите имена PlugIn функций через запятую для избежания ошибок AU3Check

Например: #AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w- 4 -w 5 -w 6 -w- 7
Вставьте директиву в скрипт и запустите горячей клавишей F5 в редакторе SciTE. Если в скрипте переменные предварительно не объявлены, то они будут выведены в консоль. Зарегистрированные функции WM - Сообщений содержат 4 параметра, некоторые из которых не используются в функции, но обязательны для указания. Чтобы AU3Check не выдавал ложных срабатываний для неиспользуемых переменных достаточно добавить #forceref $hWnd, $iMsg, $wParam первой строкой в теле функции

Параметры управления версиями
#AutoIt3Wrapper_Versioning=n;(y/n/v) Run Versioning to update the script source. По умолчанию n. V=only run when fileversion is increased by #AutoIt3Wrapper_Res_FileVersion_AutoIncrement
#AutoIt3Wrapper_Versioning_Parameters=; /NoPrompt : Will skip the Comments prompt. /Comments : Text to added in the Comments. It can also contain the below variables.
Выполнить командную строку до или после компиляции
#AutoIt3Wrapper_Run_Before=;команда выполняется перед компиляцией. Вы можете иметь несколько записей, которые будут выполнятся по очереди
#AutoIt3Wrapper_Run_After=;команда выполняется после компиляции. Вы можете иметь несколько записей, которые будут выполнятся по очереди
В этих директивах могут использоваться следующие переменные
%in% , %out%, %outx64%, %icon% - переменные заменяются полным путём или именем файла.
%scriptdir% переменная аналогична @ScriptDir (путь к каталогу скрипта) и %scriptfile% = имя файла с расширением.
%fileversion% эта информация из директивы #AutoIt3Wrapper_Res_Fileversion
%scitedir% переменная содержит путь к каталогу SciTE
%autoitdir% переменная содержит путь к каталогу AutoIt3
Установки
#AutoIt3Wrapper_Add_Constants=;Добавляет необходимые стандартные константы include файлов. Только один раз.


Дополнительно используйте следующий формат поддерживающий раздельную обработку директив при запуске и компиляции. GUI недоступен, если этот формат используется.

#AutoIt3Wrapper_If_Run
    #AutoIt3Wrapper_Run_Tidy=n
#AutoIt3Wrapper_If_Compile
    #AutoIt3Wrapper_Run_Tidy=y
#AutoIt3Wrapper_EndIf

Пример

#AutoIt3Wrapper_OutFile=Program.exe
#AutoIt3Wrapper_OutFile_X64=ProgramX64.exe
#AutoIt3Wrapper_UseX64=n
#AutoIt3Wrapper_icon=Program.ico
#AutoIt3Wrapper_UseUpx=n
; #AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_Res_Comment=-
#AutoIt3Wrapper_Res_Description=Program.exe
#AutoIt3Wrapper_Res_Fileversion=0.1.0.0
#AutoIt3Wrapper_Res_LegalCopyright=Author
#AutoIt3Wrapper_Res_Language=1033
#AutoIt3Wrapper_Run_AU3Check=n

; информация в свойствах файла
#AutoIt3Wrapper_Res_Field=Version|0.1
#AutoIt3Wrapper_Res_Field=Build|2013.09.14
#AutoIt3Wrapper_Res_Field=Coded by|Author
#AutoIt3Wrapper_Res_Field=CompanyName|My_Company
#AutoIt3Wrapper_Res_Field=Compile date|%longdate% %time%
#AutoIt3Wrapper_Res_Field=AutoIt Version|%AutoItVer%

; Разрешаем обфускацию и указываем параметры
#AutoIt3Wrapper_Run_Obfuscator=y
; Параметры обфускации. Самый компактный скрипт получается удалением неиспользованных в include функций и переименование переменных в сгенерированное короткое имя (/om)
#Obfuscator_Parameters=/sf /sv /om /cs=0 /cn=0
; удаление сгенерированного файла обфускации
#AutoIt3Wrapper_Run_After=del /f /q "%scriptdir%\%scriptfile%_Obfuscated.au3"