Ответов не нашёл, как и на многое в рунете, но как обычно нашлось на буржуйском форуме.
Пишу скорее для себя. Когда придумал это название, нашлась одна тема, но её закрыли так и не найдя решения.
Суть такая.
Собираем на
AutoIt 3.3.14.2 SciTE4AutoIt 3.7.3
в моём случае для x64 Win7, Win10 , язык русский, поддержка другиг ОС не планируется.
Раз уж используется AutoIt3Wrapper , а из коробки IDE не работает, но начну с настройки SciTE
Как запустить файл нашлось на буржуйской форуме . Автор требует чтоб изучили как это работает, а не просто пихали к себе, так придётся работать руками.
Тут я взял RunBinary.au3 , включил версию x64 и закоментировал всё до функций.
Вот что получилось. Создаём и собираем неважно какой файл, но важно для какой системы он собран
Через MemoryDll Generator из bin.exe создаю srcbin.au3 с переменной bBinary
Этим он будет запускаться
В общем пробничек получился, но как передать параметры, и важно чтоб все файлы были 64.
Хотя тут вродебы примерно можно понять
параметры и через что запускать, но вот как это вытащить с cmd
Вообщето я искал как ресурс запустить, но вот только это получилось, и то не совсем понятно
Пишу скорее для себя. Когда придумал это название, нашлась одна тема, но её закрыли так и не найдя решения.
Суть такая.
Есть утилита от НЕГО всего 80кб(ужимается до 25кб), идёт с набором для разработчиков, можно скачать на сайте качалку которая вытянет больше гига всякого хлама, который ещё надо кудато поставить, и потом зная где взять эту утилиту.
Можно без установки, но в последних версиях названия пакетов какаето дичь и в каком она лежит непонятно.
Так что самый простой способ её получить это запихать в сам скрипт.
Выгугливать и подкладывать в системную папку, это долго.
Почему именно запуск, а не распаковка во временное место.
Не хочу замусоривать , прога и так создаёт 2 конфига(с настройками проги и пользователя) и всяких разных логов, там же и папки с тем что она запускает.
Чуть что проще будет снести всё оставив только сам скрипт.
Перед каждым запуском проверять не удалил ли её пользователь както долго.
Можно положить в отдельную папку, но она будет только мешать. Кудато во временную я не хочу.
В общем хочу вшить и всё.
Можно реализовать и на самом autoit, но мне пока не ясно как этим то пользоваться, так что начну с простого.
Можно без установки, но в последних версиях названия пакетов какаето дичь и в каком она лежит непонятно.
Так что самый простой способ её получить это запихать в сам скрипт.
Выгугливать и подкладывать в системную папку, это долго.
Почему именно запуск, а не распаковка во временное место.
Не хочу замусоривать , прога и так создаёт 2 конфига(с настройками проги и пользователя) и всяких разных логов, там же и папки с тем что она запускает.
Чуть что проще будет снести всё оставив только сам скрипт.
Перед каждым запуском проверять не удалил ли её пользователь както долго.
Можно положить в отдельную папку, но она будет только мешать. Кудато во временную я не хочу.
В общем хочу вшить и всё.
Можно реализовать и на самом autoit, но мне пока не ясно как этим то пользоваться, так что начну с простого.
AutoIt 3.3.14.2 SciTE4AutoIt 3.7.3
в моём случае для x64 Win7, Win10 , язык русский, поддержка другиг ОС не планируется.
Раз уж используется AutoIt3Wrapper , а из коробки IDE не работает, но начну с настройки SciTE
которую я искал 5 дней и 3 года.
Если не использовать обфускацию, то из коробки работает, только скрипт весит на 20% больше, а памяти сжирает в 3 раза больше. Так что в финальной сборке он нужен.
AU3Stripper работает только с UTF8BOM , в остальных случаях портит кодировку и не может даже правильно читать директивы AutoIt3Wrapper и тем туда чтото писать.
После установки SciTE работает на неведомом языке. Чтоб в ней стало возможно создать файл, надо в настройки пользователя вписать
хорошо хоть в глобальных стоит
и она не портит файлы.
Вот теперь в ней можно создать файл который нормально скомпилируется.
Но поскольку у ней в отличии от старой версии почемуто отвалилась прокрутка, то добавлю ещё
И чтоб было проще тыкать кнопочки приделал язык
файл взял откудато с интернета по первой ссылке и положил в папку с самим SciTE.exe. Пришлось его перекодировать в ansi через n++ чтоб кодировка русификации в окне была нужной. Тут есть другие файлы, проверять их было уже лень.
Если не использовать обфускацию, то из коробки работает, только скрипт весит на 20% больше, а памяти сжирает в 3 раза больше. Так что в финальной сборке он нужен.
AU3Stripper работает только с UTF8BOM , в остальных случаях портит кодировку и не может даже правильно читать директивы AutoIt3Wrapper и тем туда чтото писать.
После установки SciTE работает на неведомом языке. Чтоб в ней стало возможно создать файл, надо в настройки пользователя вписать
Код:
NewFileEncoding=UTF8BOM
Код:
utf8.auto.check=4
Вот теперь в ней можно создать файл который нормально скомпилируется.
Но поскольку у ней в отличии от старой версии почемуто отвалилась прокрутка, то добавлю ещё
Код:
output.scroll = 2
И чтоб было проще тыкать кнопочки приделал язык
Код:
locale.properties=locale.properties
Как запустить файл нашлось на буржуйской форуме . Автор требует чтоб изучили как это работает, а не просто пихали к себе, так придётся работать руками.
Тут я взял RunBinary.au3 , включил версию x64 и закоментировал всё до функций.
Вот что получилось. Создаём и собираем неважно какой файл, но важно для какой системы он собран
bin.au3
Код:
#AutoIt3Wrapper_UseX64=y
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_Run_After="%autoitdir%\Aut2Exe\Upx.exe" %out% --best --no-backup --overlay=copy --compress-exports=1 --compress-resources=1 --strip-relocs=1
Opt("GUIOnEventMode", 1)
$hGUI = GUICreate("exe", 150, 100,100,100)
GUISetOnEvent(-3, '_exit', $hGUI)
GUISetState(@SW_SHOW)
While 1
WEnd
Func _exit()
Exit
EndFunc
Этим он будет запускаться
Код:
#AutoIt3Wrapper_UseX64=y
Opt("GUIOnEventMode", 1)
#include <srcbin.au3>
#include <RunBinary.au3>
$hGUI = GUICreate("gui", 150, 50)
GUISetOnEvent(-3, '_exit', $hGUI)
GUICtrlCreateButton("1", 10, 10, 30, 30)
GUICtrlSetOnEvent(-1, "_btn1")
GUICtrlCreateButton("2", 50, 10, 30, 30)
GUICtrlSetOnEvent(-1, "_btn2")
GUISetState(@SW_SHOW)
While 1
WEnd
Func _exit()
Exit
EndFunc
Func _btn1()
_RunBinary($bBinary)
MsgBox(262144, "","" )
EndFunc
Func _btn2()
MsgBox(262144, "","Exit" )
_exit()
EndFunc
Хотя тут вродебы примерно можно понять
Код:
Func _RunBinary($bBinaryImage, $sCommandLine = "", $sExeModule = @AutoItExe)
Вообщето я искал как ресурс запустить, но вот только это получилось, и то не совсем понятно