Войти

Показать полную графическую версию : Несколько exe в одном файле


Страниц : [1] 2

ispolin
25-12-2021, 13:39
Здравствуйте. Есть несколько тестов в exe формате, хочется их объединить под один интерфейс с выбором запуска любого теста и главное, чтобы был это один exe файл.
Autorunы не предлагать. Они все создают лишь меню, а сами файлы кладутся рядом, мне надо запаковать всё в одно и интерфейс с кнопками запуска тестов.
Тесты не требуют установки, запускаются простым кликом.

https://i.postimg.cc/VrxLstyV/image.jpg (https://postimg.cc/VrxLstyV)

Iska
25-12-2021, 17:18
…и главное, чтобы был это один exe файл. »
ispolin, не делайте так.

boss911
25-12-2021, 17:47
Либо брать Autorun (где можно создавать кнопки и на них вешать запуск), либо писать/кодить свой Autorun/Launcher. Все это в один EXE - например SFX или Install (RAR\7zip или InnoSetup\NSIS). А еще можно сделать Launcher с кнопками на базе того же InnoSetup\NSIS, но нужно кодить.

MKN
25-12-2021, 17:49
Несколько exe в одном файле »
Вот антивирусы обрадуются... :)
можно сделать Launcher с кнопками »
Наверное это будет самое простое и верное решение.

Iska
25-12-2021, 17:58
Вот антивирусы обрадуются... »
Во-во :).

Наверное это будет самое простое и верное решение. »
Только не надо для этих целей пользовать инсталляторы. Инсталляторы — для создания дистрибутивов инсталляции.

MKN
25-12-2021, 18:15
Только не надо для этих целей пользовать инсталляторы. »
Если имеется ввиду nsis или inno , то почему бы нет ? На их базе можно делать что угодно, в том числе абсолютно автономные программы. (Ессно в меру их возможностей.)
А уж лаунчер с кнопками управления-запуска иных программ, это вообще не вопрос.

ispolin
25-12-2021, 18:56
не делайте так »
что так?
можно сделать Launcher »
т.е самому..знаний нет

inno »
он такое может?

Iska
25-12-2021, 20:41
…то почему бы нет ? »
См. выше:
Инсталляторы — для создания дистрибутивов инсталляции. »
что так? »
Не надо громоздить Пелион на Оссу лепить один исполняемый файл из кучи других, уже существующих исполняемых файлов. Сделайте оболочку любым способом, хоть исполняемым файлом, хоть скриптом. Возьмите WIX, InnoSetup, NSIS или, на худой конец, WinRAR/7-Zip и создайте обычную инсталляцию, которая будет разворачиваться на целевой машине.

MKN
26-12-2021, 10:50
См. выше: »
Ну да :) :
На их базе можно делать что угодно, в том числе абсолютно автономные программы. »
Именно программы, а не только
дистрибутивов инсталляции »

habib2302
26-12-2021, 12:36
AutoIt можно использовать, но все равно файлы, которые будут запакованы в скрипт надо их куда-то извлекать. То же самое и с Inno Setup

ispolin
26-12-2021, 14:48
habib2302, так можно в темп, подскажите скрипт?

Iska
26-12-2021, 14:49
Про что и речь. Может быть, как-то возможно будет запускать из смещения, может быть, можно будет извлекать и запускать непосредственно из памяти. Но, так или иначе — здравствуй срабатывание поведенческого анализатора антивируса! И, коль один хрен надо будет извлекать эти файлы, то почему бы вместо всех этих телодвижений не сделать банальную инсталляцию (вместе со своей оболочкой)?!

ispolin, скажите — почему Вы не хотите сделать обычную инсталляцию? Каковы причины?

habib2302
26-12-2021, 16:17
ispolin, вот пример... Я использую AutoIt 3.3.14.5 и SciTE4AutoIt3 19.1127.1402.0
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=1306.ico
#AutoIt3Wrapper_Outfile=UnPack.exe
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_UseUpx=y
#AutoIt3Wrapper_UPX_Parameters=--best
#AutoIt3Wrapper_Res_Description=EDeclaration UnPack DB by Xabib
#AutoIt3Wrapper_Res_Fileversion=22.7.2018.0
#AutoIt3Wrapper_Res_ProductVersion=22.7.2018
#AutoIt3Wrapper_Res_LegalCopyright=Xabib © 2018
#AutoIt3Wrapper_Res_Language=1049
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <File.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
#Region
$Form1 = GUICreate("Заголовок окна", 226, 163, 259, 189)
$Label1 = GUICtrlCreateLabel("Название", 0, 8, 226, 31, $SS_CENTER)
GUICtrlSetFont(-1, 14, 800, 0, "Arial")
$Button1 = GUICtrlCreateButton("Программа №1", 16, 56, 193, 33, $WS_GROUP)
GUICtrlSetFont(-1, 10, 400, 0, "Arial")
$Button2 = GUICtrlCreateButton("Программа №2", 16, 100, 193, 33, $WS_GROUP)
GUICtrlSetFont(-1, 10, 400, 0, "Arial")
GUISetState(@SW_SHOW)
#EndRegion

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit

Case $Button1
GUISetState(@SW_HIDE)
FileInstall('Оператор - обучение.exe', @TempDir & '\*')
ShellExecuteWait(@TempDir & '\Оператор - обучение.exe')
FileDelete(@TempDir & '\Оператор - обучение.exe')
GUISetState(@SW_SHOW)
Case $Button2
GUISetState(@SW_HIDE)
FileInstall("7z.exe", @TempDir & "\*")
ShellExecuteWait(@ScriptDir & '\gpuzPortable.exe')
FileDelete(@TempDir & "\7z.exe")
GUISetState(@SW_SHOW)
EndSwitch
WEnd
Будут вопросы, спрашивайте. Так же скрипт можно использовать вместе с inno и упаковывать файлы не сам скрипт, а в инсталлятор только надо удалить строки FileInstall и FileDelete

ispolin
26-12-2021, 17:03
сделать обычную инсталляцию »
так я же сказал, это просто тесты в exe формате и их не нужно инсталировать

Будут вопросы, спрашивайте. »
вставил код в Autoit..там путь до моего файла..и прочее не понял я..глуп не по годам

вот один тест https://cloud.mail.ru/public/p3J2/kZRgoMPtR
их 8 штук

habib2302
26-12-2021, 17:07
ispolin, я изменил скрипт в посте, посмотрите
FileInstall('Оператор - обучение.exe', @TempDir & '\*')
Первые кавычки это путь и имя файла, который вы хотите упаковать
Вторые кавычки путь куда распаковывать файл и имя файла, которое вы хотите получить после распаковки
@TempDir это константа это по типу переменной среды windows %TEMP%
* имя файла, но я указал маску, чтобы файл распаковывался с тем же названием с каким вы его упаковали.
Пример
FileInstall('Оператор - обучение.exe', @TempDir & '\Test1.exe')
ShellExecuteWait это запуск исполняемого файла допусти экзешника с ожиданием т.е пока вы не закройте тест действия скрипта не буду выполняться

Iska
26-12-2021, 17:24
…и их не нужно инсталировать »
Вы так и не ответили — почему «не нужно». Вопрос не про «можно не инсталлировать, они и так работают», вопрос именно про то, почему «я против того, чтобы инсталлировать».

ispolin
26-12-2021, 17:41
почему «не нужно» »
они и так работают »
так для чего их инсталировать? чтобы сидели в системе? вариант с темпом думаю подходящий
инсталяция в моём понимании-установка намертво в систему, а эти тесты нужны нам раз в месяц, подготовка перед "великим гемороем"
январь на освежение знаний в памяти, затем отстрелялись в феврале и забыли

habib2302
26-12-2021, 17:44
ispolin, инсталлятор можно сделать без записей в реестр и без создания деинсталлятора. Он просто будет распаковывать в темп и по окончании все будет удалено из темп

Iska
26-12-2021, 18:37
ispolin, то есть, никаких рациональных объяснений Вашему предубеждению нет.

Grabber2006
26-12-2021, 18:37
Программа, которая распаковывает из себя exe-шники, будет детектироваться большинством антивирусов.




© OSzone.net 2001-2012