Что нового

[Compiled] WrapperAutoit3 - компиляция скриптов Autoit

joiner

Модератор
Локальный модератор
Сообщения
3 109
Репутация
518
AutoIt: 3.3.12.0
Версия: 1.0

Категория: Вспомогательные функции

Описание: WrapperAutoit3 - программа для компиляции скриптов (au3)
WrapperAutoit3 имеет свои директивы (смотри ниже), но также компилирует скрипты без директив.
Естественно, подсветки директив WrapperAutoit3 в редакторе не будет . но это не влияет на правильность остального кода. компиляция проходит успешно
В архиве все исходники

Директивы
##exename ;имя файла после компиляции
##icon ;иконка для компиляции Autoit2exe
##bit ;разрядность получаемой программы. по умолчанию х86. если ##bit=x64 то разрядность программы будет соответствующая
##comments
##companyname
##filedescription
##internalname
##legalcopyright
##legaltrademarks
##originalfilename
##productname
##fileversion
##productversion

##lang ;язык программы. смотри кодировку языков
##addres ;добавить файл ресурса в исполняемый файл программы
##addresbmpico ;установить\изменить иконку файла, добавить файл .bmp
##upx ;применить сжатие после компиляции. значение от 1 до 9 или 'n' или не указывать эту директиву
##compile ;по умолчанию используется стабильная версия языка для компиляции , значение этой директивы в этом случае - 'rtm', если нужно компилировать beta-версией языка, то указываем в директиве - 'beta'.в исходнике компилируемого скрипта в комментариях появится номер версии языка
можно не указывать эту директиву. будет использована стабильная версия компилятора
пример использования директив
##icon=wc.ico
##exename=qwerty.exe
##upx=9
##lang=11265
##comments=коммент
##legaltrademarks=марка
##productversion=1.1.1.1
##fileversion=2.2.2.2
##originalfilename=оригинальное имя
##compile=beta;v3.3.13.19
##bit=x64
##addresbmpico=Jellyfish.bmp|2|Jell
##addresbmpico=A.ico|3|A
##addres=A.ico|10|A
##addres=doc.txt|10|doc
##addres=Jellyfish.bmp|10|Jellyfish
Порядок следования директив произвольный. Указывать все директивы необязательно.
Программу можно использовать как portable, в этом случае при компиляции будет запрошен путь к компилятору и к упаковщику
пример файла настроек WrapperAutoit3.ini
Код:
[path]
compiler=C:\Program Files\AutoIt3\[Программа для декомпиляции]\[Программа для декомпиляции].exe
packer=C:\Program Files\AutoIt3\Beta\[Программа для декомпиляции]\upx.exe
compilerb=C:\Program Files\AutoIt3\Beta\[Программа для декомпиляции]\[Программа для декомпиляции].exe
scite=C:\Program Files (x86)\AutoIt3\SciTE\Properties
Файл настроек создается автоматически, после того, как были указаны пути к компилятору и упаковщику.

WrapperAutoit3 можно устанавливать в контекстное меню и в меню редактора SciTE. Для этого нужно запустить WrapperAutoit3, выбрать любой файл с расширением .au3, вкладка "Установка".
После добавления пунктов в контекстное меню проводника или добавления программы в редактор в корне диска С появится папка с WrapperAutoit3

Командная строка:
компиляция по умолчанию
Код:
WrapperAutoit3.exe File.au3
запуск окна WrapperAutoit3 для редактирования\установки директив
Код:
WrapperAutoit3.exe /gui File.au3
Файл: Исходник + пример + EXE
Только исходник

P.S.:Возможна реакция антивирусной программы
Источник: autoit-script.ru
Автор(ы): joiner
 

Вложения

  • 66,5 КБ Просмотры: 200
Автор
joiner

joiner

Модератор
Локальный модератор
Сообщения
3 109
Репутация
518
добавил управление сжатием
##upx
добавил возможность удалять иконку по умолчанию
##dellresico
выше все директивы с примером применения.

переписал часть кода в целях оптимизации
 

xklx

Новичок
Сообщения
50
Репутация
3
Если не трудно можно добавить чем он лучше/хуже стандартного и какие преимущества.
 
Автор
joiner

joiner

Модератор
Локальный модератор
Сообщения
3 109
Репутация
518
я хочу сделать мобильную версию. сейчас он привязан к папке установки языка, но на самом деле это не нужно для компиляции.
Wrapper, который идет с редактором, не работает, если его запустить с рабочего стола.
MyWrapper работает из любой папки. Пока нет окна, где можно заполнить некоторые другие детали, как автор, версия и так далее, но его нет, потому что пока нет такой опции в MyWrapper .
но в отличии от встроенного, он может удалять ресурсы из файла (пока сделал удаление стандартной иконки) и менять на пользовательские.
то есть если в скрипте написать
##dellresico=y
##addresbmpico=C:\MyWrapper\A.ico,3,99,3
##addresbmpico=C:\MyWrapper\wc.ico,3,R
компилировать скрипт без иконки, то будет удалена стандартная иконка (которую устанавливает AutoIT 3.3.12.0) в Icon Entry и ее параметры в Icon Group
потом устанавливаем свою иконку
потом добавляем еще одну
и получаем, что файл имеет одну иконку, а в окне программы и в трее отображается другая иконка.
это, конечно, не какие то там огромные преимущества.но все же. можно управлять своей программой.
надеюсь, со временем допишу функции добавки комментарий - автор , версия, язык и прочее.

Autoit3Wrapper такой же дополнительный, но не обязательный инструмент для программирования
 

inververs

AutoIT Гуру
Сообщения
2 135
Репутация
462
joiner
А почему диррективы не сделать совместимыми со стандартнымыми? Тогда появится альтернатива чем собирать скрипт, либо стандартным врапером, либо вашим.
 
Автор
joiner

joiner

Модератор
Локальный модератор
Сообщения
3 109
Репутация
518
функционал другой. ну и...не люблю стандарты.
в итоге, это всего лишь проект, пример того, что можно собрать свой инструмент, заточить под себя или сделать общим.


--------------------------------------------------------------------------------------------------------------------------------
добавлены директивы MyWrapper .
можно добавлять версию файла, комментарии, менять разрядность выходного файла и так далее.
смотри первое сообщение
исходник с примерами там же.
 
Автор
joiner

joiner

Модератор
Локальный модератор
Сообщения
3 109
Репутация
518
Добавил программе окно. можно собирать скрипты из контекстного меню :
компилировать по умолчанию
компилировать с опциями. как в стандартном wrapper - e
немного изменил принцип записи свойств файла.
есть возможность менять язык файла . нужно только указать нужную кодировку языка
в окне программы можно заполнить 17 пунктов свойства файла. эти директивы будут вписаны в исходник при компиляции
часть функций взята из исходника AutoIT3Wrapper. естественно , пришлось их обработать для своего проекта.

все примеры и готовая программа по ссылке в первом сообщении.
 
Автор
joiner

joiner

Модератор
Локальный модератор
Сообщения
3 109
Репутация
518
добавлено:
сохранение параметров без последующей компиляции кода
 

C2H5OH

AutoIT Гуру
Сообщения
1 473
Репутация
332
joiner сказал(а):
inververs сказал(а):
А почему директивы не сделать совместимыми со стандартными? Тогда появится альтернатива чем собирать скрипт, либо стандартным врапером, либо вашим.
функционал другой. ну и...не люблю стандарты.
в итоге, это всего лишь проект, пример того, что можно собрать свой инструмент, заточить под себя или сделать общим.
joiner,
ну вот... Ну неужели не понятно?? Вы же умный человек! Так зачем же?! ...
На кого рассчитан Ваш MW ?
Ну вот, допустим я на него перешел... Тогда мне нужно отказаться от стандартного и везде установить MW. Тогда мне нужно переписать все свои скрипты под MW. Тогда людям, которым я передаю скрипты, тоже нужно переходить на MW. А что делать со скриптами, которые я не пишу сам, а беру готовые (с оф.сайта, например) ?
А справка по этим альтернативным директивам где?
А поддержку кто будет обеспечивать? (только не говорите что Вы лично :rofl:)
Как можно не понимать, что путь к внедрению нового - это обязательная поддержка старого? Зачем противопоставлять своё стандартному???
 

DarWiM

Продвинутый
Сообщения
527
Репутация
90
C2H5OH

joiner [?]
это всего лишь проект, пример того, что можно собрать свой инструмент, заточить под себя
Мне кажется, что автор дал понять основную идею.. :smile:
 
Автор
joiner

joiner

Модератор
Локальный модератор
Сообщения
3 109
Репутация
518
C2H5OH
слегка поясню.
как и было написано, это частный инструмент. такие инструменты есть , думаю, у каждого кодера. я пользуюсь им. и мне он вдруг понравился :smile:
по поводу совместимости. я думаю над этим, но!!!
мне не нравятся длинные имена директив стандартного Au3Wrapper -а
передавать скрипты можно без директив. зачем они?
далее,
директивы никак не вяжутся с остальным кодом. это всего лишь инструкция к компиляции. можно взять любой скрипт и компилировать через MW.в окне добавить свои параметры или компилировать без оных. в этом отношении MW никак не отличается от встроенного.
да и вообще, по сути MW не отличается от встроенного врапера.
я выше писал, что некоторые функции взяты из исходного кода стандартного Autoit3Wrapper
посмотри исходник MW
стандартный Autoit3Wrapper работает только из своей папки установки (по умолчанию), MW работает из любой директории.
 

firex

AutoIT Гуру
Сообщения
943
Репутация
203
joiner
Есть еще идея на счет опции "Предварительная инициализация всех констант", суть ее в следующем:
Заменить все текстовые константы скрипта вида "Sample text constant" на $HEXRANDOM и инициализировать как константу в шапке. Это дает невероятно хороший прирост скорости AutoIt'у в обработке исполняемой строки. Чисел это не касается.
 

Skif_off

Знающий
Сообщения
173
Репутация
12
firex
Можно поподробнее? С примером для новичка.
 
Автор
joiner

joiner

Модератор
Локальный модератор
Сообщения
3 109
Репутация
518
добавил возможность выбора нескольких файлов для добавления в RC_DATA
иконки и рисунки bmp добавляются так же по одному.
но и для тех и для других сделал автоматическую подстановку параметров,
то есть выбрав рисунок bmp сразу будут добавлены соответствующие параметры - тип, имя
так же и при массовом выборе файлов будут добавлены параметры - тип, имя
потом можно будет редактировать вручную, если что то не устраивает :smile:
смотри обновленные скрины в первом сообщении.
 
Автор
joiner

joiner

Модератор
Локальный модератор
Сообщения
3 109
Репутация
518
Внес некоторые исправления в код.
Ввиду того, что функции обновления ресурсов не всегда срабатывают с первого раза, добавил попытки добавления. в случае безуспешности скомпилированный файл удаляется
 
Автор
joiner

joiner

Модератор
Локальный модератор
Сообщения
3 109
Репутация
518
Сделаны некоторые существенные изменения в программе
1. Возможность использовать при компиляции beta - версию языка (добавлена директива , смотри первое сообщение)
2. Возможность использовать WrapperAutoit3 без установки Autoit в систему(смотри комментарии к директиве ##compile)
3. Возможность использовать файл настроек, в котором будут указаны пути к компилятору и к упаковщику(смотри пример в первом сообщении)
Буду признателен за тестирование программы
 
Автор
joiner

joiner

Модератор
Локальный модератор
Сообщения
3 109
Репутация
518
Добавил в самой программе возможность записывать путь WrapperAutoit3 в реестр
Добавлена возможность устанавливать WrapperAutoit3 в редактор SciTE.
смотри описание в первом сообщении темы
 

Вложения

  • 20,1 КБ Просмотры: 30
Автор
joiner

joiner

Модератор
Локальный модератор
Сообщения
3 109
Репутация
518
Изменения:
1. Выбор места расположения SciTE теперь только после установки соответствующей отметки в окне программы (раньше это было при запуске окна, что не совсем удобно)
2. Сохранение копии скрипта при перезаписи. На случай, если произошла ошибка (при успешной записи дубликат удаляется)
 
Верх