Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Запаковать проект в один EXE файл

Автор: fronik
Дата сообщения: 31.08.2005 19:55
Нужна программа которая сможет запаковать все используемые файлы программой в один EXE-файл, с сохранением относительных путей. Например если у меня был батник с программой рядом и я запускал его относительно своей программы, то нужно чтобы эта возможность осталась после запаковки всего проекта в один ЕХЕ.
Также желательно чтобы программа не создавала временного каталога для всех внутренних файлов как Alloy.

Пользовался филтром, ничего стоющего найти не удалось.
- MoleBox_Pro все запаковывает в один exe, но не может работать с запаковаными файлами, например, когда я пытаюсь запустить батник из проекта который лежал рядом с главным ехе-фалом, возвращает ошибку - файл не найден.
- Alloy - все запаковывает, но при запуске все благополучно распаковывает куданибудь (по выбору) и дает работать с файлами. (в моем случае она и этого несмогла сделать, 6 мегабайт при запуске (распаковке), распаковывает 1 файл из 30 и вылетает с ошибкой.

Подскажите пожалуйста кто чем пользовался, свои варианты.
Был и в программах и варезнике, поиск успехом не увенчался.
Автор: Xarde
Дата сообщения: 31.08.2005 23:20
Я бы попробовал решить проблему с помощью обычного RAR'a и скриптов на WSH (или своей прогой, которая создаст или перенастроит скриптовые файлы и ярлыки для запуска программ). Или, если много разных файлов надо кидать в разные места, то поюзал бы InnoSetup - неплохой бесплатный скриптовый инсталлятор.

Все зависит от степени сложности задачи и требуемого результата.
Автор: Kuvaldum
Дата сообщения: 31.08.2005 23:50
fronik
Была у меня мысль как-то написать свою примитивную файловую систему, чтобы монтировать экзешник с ресурсами как отдельный драйв. Но до ума так и не довел. В природе такого готового, к сожалению, не встречал.
Автор: RamireZ
Дата сообщения: 01.09.2005 14:00
Thinstall попробуй. Он тоже при запуске распаковывает необходимые данные, но может их опционально шифровать. Плюс относительные пути, эмуляция реестра и файловой системы и т.д.
Автор: fronik
Дата сообщения: 02.09.2005 12:46
Xarde
Сейчас я так и выхожу из положения, прячу все свои рабочии файлы в рар архиве с паролем и шифрованием.
Рядом приходится еще также держать rar.exe переименованый и полностью зачищеный (все строки и сообщения стерты в нем, для консперации).
А программа при запуске и работе с помощью этого rar.exe уже выдергивает необходимые файлы и кидает их в систему, потом работает с ними.
Это довольно неудобно и нестабильно, что приводит иногда к некоторым ошибкам.

RamireZ
Пасибо, сейчас посмотрю
Автор: DaLiV
Дата сообщения: 19.10.2005 14:10
http://www.geocities.com/gacarpenter386/ - zdesj mozhet bitj to chto nado v zadache....
Автор: DmitriyK
Дата сообщения: 26.10.2006 22:56
Можно ли всё-таки объединить несколько *.exe файлов в один.
Задача такая:
Есть несколько *.exe файлов, которые поочередно должны запускаться.
Если их запускать из *.bat или *.cmd файла, то в момент окончания выполнения одного файла и до запуска следующего промелькивает (и причем очень заметно и это мешает) рабочий стол.
Возможно ли как-то объединить запускаемые exe-шники, чтобы этих промелькиваний не было?
Автор: ShIvADeSt
Дата сообщения: 27.10.2006 01:24
DmitriyK

Цитата:
Можно ли всё-таки объединить несколько *.exe файлов в один.

Можно, делаешь один отдельный ехешник - типа стартера, которому в ресурсы пихаешь все остальные ехешники, он по очереди извлекает их из ресурсов и стартует, потом убивает. Насчет чтобы не было промелькивания - фиг его знает, так как вначале программа закрывается, после этого вторая стартует, при этом перед закрытием она не оповещает. Если программы твои, то уточни это, если нет, то скорее всего никак.
Автор: DmitriyK
Дата сообщения: 27.10.2006 20:18
ShIvADeSt
Нет, программы не мои. Избавиться от промелькивания для меня важнее, чем просто объединить все в один exe-файл. Если промелькивание останется, то нет смысла в один файл собирать, можно и из bat-файла поочередно все запустить. Вот если бы стартером устанавливать полноэкранный режим с установкой какой-нить фоновой заливки и на этом фоне запускать бы свои exe-файлы и только после последнего возвращаться к обычному рабочему столу, то такой вариант тоже бы подошел...
Автор: EZH
Дата сообщения: 27.10.2006 23:27
DmitriyK
Я не пойму что-то - эти запускаемые проги все полноэкранные что-ли и во время их работы десктопа не видно? И какого рода проги - DOS/Console или Windows GUI или вообще полноэкранные DirectX/OpenGL?
Автор: ShIvADeSt
Дата сообщения: 28.10.2006 01:15
DmitriyK
как вариант попробуй сделать след, создай стартер, в нем реализуй след, все окна свернуть (чтобы не бултыхались), установи обои раб стола в ровный цвет (не забыв сохранить прежние, а то юзвери этого не любят ), пошли проводнику хайд (вернее програм менеджеру, но смысл тот же) запускай свой софт, правда не будет таск бара, но это примерно равно
Цитата:
полноэкранный режим с установкой какой-нить фоновой заливки и на этом фоне запускать бы свои exe-файлы

Автор: DmitriyK
Дата сообщения: 28.10.2006 13:58
EZH

Цитата:
Я не пойму что-то - эти запускаемые проги все полноэкранные что-ли и во время их работы десктопа не видно? И какого рода проги - DOS/Console или Windows GUI или вообще полноэкранные DirectX/OpenGL?

Имеется 4 exe-шника, все полноэкранные, 2 cделаны на Flash, 2 в программе PictureToExe. Во время их работы десктопа их не видно.

ShIvADeSt

Цитата:
как вариант попробуй сделать след, создай стартер, в нем реализуй след, все окна свернуть (чтобы не бултыхались), установи обои раб стола в ровный цвет (не забыв сохранить прежние, а то юзвери этого не любят ), пошли проводнику хайд (вернее програм менеджеру, но смысл тот же) запускай свой софт, правда не будет таск бара

В принципе наверное подходящий вариант, но есть ли пример исходников на эту тему?
Автор: Imagoham
Дата сообщения: 29.10.2006 10:40
DmitriyK
Попробуй MicroJoiner v1.7 (Russian interface) - 15Kb

Добавлено:
А что бы антивирь не плакалЪ - пакуй ASProtect.
Автор: ShIvADeSt
Дата сообщения: 30.10.2006 00:56
DmitriyK

Цитата:
В принципе наверное подходящий вариант, но есть ли пример исходников на эту тему?

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

Цитата:

SystemParametersInfo(SPI_SETDESKWALLPAPER, 0,
PChar(fedPictureName.FileName),
SPIF_UPDATEINIFILE);


найти проводник

Цитата:

FindWindow('Progman','Program Manager')

далее поищи сам
Автор: SuPp0rT
Дата сообщения: 23.01.2007 13:38

Цитата:

Нужна программа которая сможет запаковать все используемые файлы программой в один EXE-файл, с сохранением относительных путей. Например если у меня был батник с программой рядом и я запускал его относительно своей программы, то нужно чтобы эта возможность осталась после запаковки всего проекта в один ЕХЕ.
Также желательно чтобы программа не создавала временного каталога для всех внутренних файлов как Alloy.


давай почту пришлю исходник на DELPHI
Автор: Midshipmen
Дата сообщения: 23.01.2007 18:59

Цитата:
Также желательно чтобы программа не создавала временного каталога для всех внутренних файлов как Alloy.


Как ты себе это представляешь? Придется тогда писать проксю, и либо соответствующим образом делать враппер для вызовов, либо перехватывать на уровне NTFS-слушателя.
Автор: freeaccount
Дата сообщения: 25.01.2007 02:07
fronik
Несколько наивный вопрос: а зачем все это убирать? В коммерческих программах чего только на экране не творится, и ничего. И чем не устраивает временный каталог? Его можно создавать где-нибудь в C:\Documents and Settings\user\Local Settings\Application Data\, а потом удалять. Никто ничего и не заметит.

Если же все-таки будешь пытаться сделать "красиво", то могу лишь пожелать удачи: мне кажется, что MS Corp. не рассчитывала на такое использование Windows и то, что ты сделаешь, будет сделано в любом случае криво (просто не предоставляется соответствующих сервисов).

P.S. ShIvADeSt советовал искать в инете. Позволю себе поправить: лучше сразу смотреть MSDN.
Автор: XPEHOMETP
Дата сообщения: 25.01.2007 21:20
freeaccount

Цитата:
Никто ничего и не заметит.

К сожалению, при большом желании юзер может облазать временные папки, пока прога не закрыта. Или запустить поиск с утилами, отслеживающими изменение файловой системы; я сам использую для этого System Mechanic. Так что тот, кто задастся такой целью, временные файлы в папке найдет без особых проблем. Вот то, что Kuvaldum предлагал - было бы как раз.

Страницы: 1

Предыдущая тема: Как работать с oem кодировкой в richtextbox у с#


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.