Skip to main content

Блог инженера

Блог о минимализме, инжинерии и программировании.



Высший класс, создание portable программ в одном файле.

  | #lifehack#portable

Одна из причин создания portable программ - это программа нужная очень редко, но её стоит держать под рукой. В этом случае описанный ниже метод подоходит идеально. Но и в других случаях, описанных в публикации “Как работать без прав администратора на компьютере” этот способ очень удобен.

Плюсы упаковки программы в один исполняемый файл очевидны, его легко найти, легко переносить, легко архивировать. Более того, его не нужно архивировать, так как сам метод предусматривает создание архива. Ограничение лишь одно, если папка с программой занимает не одну сотню мегабайт - запуск программы будет длиться дольше обычного. В случае, если программа “весит” более половины гигабайта, я не использую этот способ вообще. Но даже в нынешние времена монструозных программ, большинство укладываются в лимит.

Другую особенность я рассматриваю как преимущество, но она может быть и недостатком для вас. Если программа сохраняет настройки “как положено” в области специально предназначенные для хранения настроек - они будут сохраняться между запусками. Если настройки записываются куда-то в файл, который находится в каталоге программы - эти настройки не будут сохраняться между запусками программы. В таких случаях я предпочитаю сделать настройки под себя перед изготовлением исполняемого файла. Такие случаи скорее исключение.

В качестве примера изготовим единый запускаемый файл из текстового редактора Notepad++. Мне этот текстовый редактор очень нравиться. Кроме того, он свободно распространяемый и бесплатный. Так что это вполне легально сделать сборку для себя. Чтобы воспользоваться методом понадобится также WinRAR. Может быть подойдёт и другой архиватор, но я не нашёл такого, чтобы имел все нужные функции.

Распакуем или установим Notepad++ в любую папку. Программа полностью портабельная, главное, чтобы сохранялись относительные пути внутри программы. Теперь запустим WinRAR, перейдём в каталог с папкой программы и используем функцию ‘Add to archive’.

add to archive

Здесь можно выбрать метод сжатия ‘Archive format’. Я использую RAR4, но можно выбрать любой.

Можно выбрать имя архива, оно ни на что не влияет. Имеет смысл делать не слишком длинное имя без пробелов, так как это имя станет частью пути для распаковки программы, а не которые программы “не любят” пути с символами пробелов. Уровень сжатия можно выбрать любой, я обычно ставлю ‘Fast’. Обязательно установите галочку “Создать самораспаковывающийся архив”/’Create SFX archive’. Остальные опции по желанию.

Теперь переходите на вкладку ‘Advanced’ и нажмите кнопку ‘Advanced SFX options …’. В окошко ‘Path to extract’ введите %temp%. Именно в таком виде, со знаками процентов в начале и конце.

sfx options

Теперь переходите во вкладку ‘Advanced’ и установите флажки ‘Update all files’ и ‘Extrtact and replace files’.

sfx mode

На вкладке ‘Modes’ нужно выбрать ‘Hide all’.

На вкладке ‘Text and icon’ можно выбрать иконку приложения. Её нужно извлечь из exe файла, либо скачать в интернете.

Теперь во вкладке ‘Setup’ в окне ‘Run after extraction’ нужно ввести имя исполняемого файла программы. Важное замечание, нужно ввести относительный путь к исполняемому файлу. В моём случае - всё просто, файл notepad++.exe находится прямо в корне, поэтому вводим ‘npp\notepad++.exe’. Теперь можно жать OK и ждать создания исполняемого файла.

Run after extraction

Вот результат

Onefiler ready

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

Другие публикации по созданию портабельных сборок программ и запуску программ без прав администратора:

About Mikhail Kiselev

Photo of Mikhail Kiselev

Приветствую в моём блоге! 😄 Меня зовут Михаил. Я инженер и программист. Живу в Израиле. Но мой блог связан с работой в Сибири и на Сахалине, путешествую где придётся. Я предпочитаю пост в блог посту в твиттер. Описание полезной технологии или гаджета предпочитаю описанию заката или посиделок в кафе.