Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Автоматическая установка Windows 2000/XP/2003 (http://forum.oszone.net/forumdisplay.php?f=32)
-   -   (статья) Как вшить программу в дистрибутив Windows XP (http://forum.oszone.net/showthread.php?t=57506)

Теплый Снег 05-12-2005 08:20 379884

(статья) Как вшить программу в дистрибутив Windows XP (обновлена 7/12/2005)
 
Как вшить программу в дистрибутив Windows XP
(перевод статьи + небольшая отсебятина «How To Create New ProgramAddons»)
Доброго времени дня. Сегодня хочу вам рассказать о том , как сделать пакет с любимой вам программой и внедрить (интегрировать) его в дистрибутив собранной вами Автоматической установки Windows XP.Процесс этот несложный и не требующий каких –либо дополнительных умственных затрат. Итак поехали.
Полагаю у вас могут возникнуть вопрос по поводу того , для чего нужно вшивать программу в дистрибутив и лишить пользователя возможности выбора программы для установки. Отвечу так – что многие (или даже подавляющее большинство) делает Unattended XP исключительно под себя .Я тоже не исключение. И по мне, намного удобнее вшить в дистрибутив те программы которые мне необходимы, чем делать после дополнительные мышедвижения и возиться с постинсталлерами (такой уж я ленивый человек). Да и к тому же все жизненно важные программы и утилиты , такие как – антивирус , архиватор , антиспай и другие просто необходимо внедрять и устанавливать насильно … Надеюсь убедил .Хотя забыл еще один момент – это просто интересно и научиться этому несложно , так зачем же лишать себя такой возможности.

Шаг первый
Для начала нужно собрать SFX архив .О том как это сделать подробно описывалось в статье «Создание SFX архива» (которую можно найти в Учебнике Автоматической установки – скачать можно здесь или же найти ее на сайте unattended.oszone.net).Большое количество ключей для «тихой установки» приложений можно найти здесь на английском языке или поискать на форуме OsZone .
Шаг второй
Дальше создайте папку с любым именем. Внутри этой папки создайте еще одну под именем SVCPACK и поместите свой перепакованный инсталляционный пакет туда. Потом создайте в любом текстовом редакторе ini файл и сохраните его под именем ENTRIES_PROGRAMNAME.INI ,но не помещайте (ВАЖНО!!!) его в папку SVCPACK. Вместо PROGRAMNAME укажите название перепакованной программы (например ENTRIES_OPERA.INI ). Откройте созданный ini-файл и добавьте туда секции: [general] , [EditFile] и [AddProgram] .Пример заполнения ini-файла смотрите ниже.

Код:

[general]
builddate=12/01/2005
; дата выпуска (релиза) программы
description=Program description
;Описание программы
language=English
;язык интерфейса (насколько я понял)
title=Program
;название программы
version=1.0
; версия программы
website=http://www.programwebsite.com/
; вэб- сайт программы

[EditFile]
I386\SVCPACK.INF,SetupHotfixesToRun,AddProgram
;эту секцию оставьте без изменения

[AddProgram]
PROGRAM.EXE
;имя(название) перепакованного пакета , которой вы поместили в папку SVCPACK

Шаг последний

Итак у вас есть папка SVCPACK, в которую вы поместили перепакованный «тихий инсталл» и ini-файл ENTRIES_PROGRAMNAME.INI , он должен находиться вне папки SVCPACK . Теперь осталось только собрать все эти файлы в один CAB- файл. Сделать это можно командой makecab или любой программой умеющей сжимать файлы в CAB архив (например picozip или power archiver ) Я пользовался двумя способами командой makecab – правда пришлось попотеть и почитать (здесь ) .И второй способ – это плагин для TotalCommandera (забирать здесь )

У кого нет желания читать. Тогда повторяйте за мной. В папку с вашими заготовками поместите еще один файл (под любым коротким именем – cabm.txt) Содержание этого файла ниже :

1.С комментариями (ВАЖНО!!!) – не копируйте этот листинг , при запуске команды на исполнение получите море ошибок. Приведен только для ознакомления.
Код:

.Set Cabinet=on (включить режим сжатия всех файлов в один кабинет);
.Set Compress=on (включить сжатие);
.Set CompressionType=MSZIP (сжатие по алгоритму ZIP);
.Set CompressionLevel=7 (максимальный уровень сжатия);
.Set CabinetNameTemplate="My.CAB" (маска имени полученного файла);
.Set DiskDirectoryTemplate=".." (положить в каталог на уровень выше папки);
Далее идут абсолютные пути файлов для архивирования.
E:\Trash\CABFILES\SVCPACK\abiword.exe
E:\Trash\CABFILES\ENTRIES_ABIWORD.ini

2.Этот листинг можно скопировать. Здесь нужно исправить значение параметра .Set CabinetNameTemplate="My.CAB" если хотите получить название CAB файла .А также заменить абсолютные пути к файлам для архивирования.
Код:

.Set Cabinet=on;
.Set Compress=on;
.Set CompressionType=MSZIP;
.Set CompressionLevel=7;
.Set CabinetNameTemplate="ABICAB.CAB";
.Set DiskDirectoryTemplate="..";
E:\Trash\CABFILES\SVCPACK\abiword.exe
E:\Trash\CABFILES\ENTRIES_ABIWORD.ini

Остается только в командной строке набрать makecab /f cabm.txt и понаблюдать за таким вот окошком.



И на выходе получается ABICAB.CAB.

Или же в TotalCommandere выделяем наши файлы ,нажимаем F5 выскакивает такой диалог


Жмем Enter и выбираем указанный на рисунке ключ в выпадающем списке второго диалога



И жмем Enter повторно. Возможно вылетит еще такое окошко



На него тоже отвечаем Enter-ом

Интеграция в дистрибутив полученного CAB файла осуществляется либо NLite


Потом добавляем CAB файл


И ждем. Или же RVM Integrator – ом

Здесь вам нужно в первой строке указать путь к дистрибутиву ХР и в последнем свой CAB – файл. Если вы все проделали правильно , то файл из вашего перепакованного дистрибутива (у меня abiword.exe) должен быть в папке путь к вашему дистрибутиву ХР\I386\SVCPACK\ABIWORD.EXE. И еще в файле SVPACK.INF , который вы также найдете в папке I386 вашего дистрибутива (правда там он будет под другим именем SVPACK.IN_ , и для его просмотра его надо будет распаковать командой EXTRACT SVPACK.IN_) , в секции [SetupHotfixesToRun] вы должны увидеть строку с именем вашего перепакованного инсталла (у меня это abiword.exe /S) .

Дополнение от 07/12/2005
Учитывая ваши многочисленные письма по поводу того что использование команды makecab и других отмеченных в статье архиваторных плагинов не всегда приводит к желаемому результату. Представляю вашему вниманию еще одну программу являющуюся GUI оболочкой к утилите makecab. Называется она CabPack и проживает по адресу http://www.larshederer.homepage.t-online.de/english.htm . Размер у нее небольшой – всего 466 кб (кстати на сайте лежит сам дистрибутив с программой + апдейт к ней исправляющий небольшие ошибки в самой программе).Так что скачайте и его в обязательном порядке , благо размер небольшой (274 кб).Скачав все это дело распакуйте в любой папке и запустите CABPACK.EXE. Остальные инструкции на скриншоте снизу.



Полученный файл Compressed.cab переименуйте в AddonsИмяВашейПрограммы.cab (например AddonsOpera851.cab) . И интегрируйте вышеуказанными способами.Addons в названии файла необходим (как выяснилось) иначе RVM Integrator не видит этот файл.

Вроде все .Если возникнут вопросы то пишите на zaurbb@gmail.com

С уважением , Заур Багиров ака Теплый Снег
Baku Azerbaijan 1/12/2005

Opera - 3,85 мб
Оффлайн версию этой статьи забирайте здесь

P.S. Готовые программные аддоны можно найти здесь

Вот держите первый перекованный инсталл для интеграции.
Это лучший браузер (ИМХО) Опера.
Версия 8,51 билд 7712
меню - расширенное от Мангуста + keyboard.ini + search.ini
По ссылке ниже лежит каб архив , готовый для интеграции.Также, распаковав архив в папке SVCPACK вы найдете "тихий инсталл" Оперы.И так я надеюсь - что это первый , но последний пакет для ингрирования в дистрибутив :)

Антивирусная программа NOD32 русская стандартная версия 2.50.26 в триальном исполнении для интеграции в дистрибутив вот здесь 8 мб

Спасибо dimadr

Теплый Снег 05-12-2005 16:24 380058

Вроде как никого это не интересует :)

BeLyI 06-12-2005 00:27 380222

Интересует!

Побольше бы готовых аддонов (русифицированных).

Fanzuga 06-12-2005 11:04 380350

Теплый Снег
Спасибо за обстоятельную инструкцию,
будем пробовать.

Теплый Снег 06-12-2005 11:14 380353

Цитата:

Теплый Снег
Спасибо за обстоятельную инструкцию,
будем пробовать.
На здоровье :)
Жду готовых программ для внедрения

mickmack 06-12-2005 12:15 380385

ну дык. желательно такие же программы как на форуме у райана и мсфн но на русском языке. Acrobat Reader, LClock, TweakUI, .NET 1.1, GoogleToolbar, Opera, Maxthon.... и.т.д

Теплый Снег 06-12-2005 13:03 380397

Вот держите первый перекованный инсталл для интеграции.
Это лучший браузер (ИМХО) Опера.
Версия 8,51 билд 7712
меню - расширенное от Мангуста + keyboard.ini + search.ini
По ссылке ниже лежит каб архив , готовый для интеграции.Также, распаковав архив в папке SVCPACK вы найдете "тихий инсталл" Оперы.И так я надеюсь - что это первый , но последний пакет для ингрирования в дистрибутив :)

Opera - 3,85 мб

Теплый Снег 07-12-2005 15:51 380775

Статья обновлена

Mrempty 08-12-2005 12:21 381035

respect

Спасибо за статью. Начну наверно все проги так внедрять, результаты постараюсь выложить.

Теплый Снег 08-12-2005 13:49 381066

Цитата:

respect

Спасибо за статью. Начну наверно все проги так внедрять, результаты постараюсь выложить.
Пожалуйста .Буду ждать готовые продукты.И выкладывать их в первом посте

Lupper 08-12-2005 15:03 381082

Скажите пожалуста,а в чём конкретно преимущества этого метода?
Место меньше в итоге занимает?а как насчёт времени установки уменьшиться или увеличиться?я так понимаю что в случае такой интеграции винда воспринимает такой как пакет как родной?или я что-то не так понял?

Теплый Снег 08-12-2005 15:10 381088

Цитата:

Скажите пожалуста,а в чём конкретно преимущества этого метода? Место меньше в итоге занимает?а как насчёт времени установки уменьшиться или увеличиться?я так понимаю что в случае такой интеграции винда воспринимает такой как пакет как родной?или я что-то не так понял?
Преимущество данного метода в том , что программы устанавливаются без какого либо вмешательства пользователя.В том смысле ненужны никакие программы постинстала.Особого места такой пакет не экономит.А насчет того - что винда воспринимает такой пакет как родной , то это может быть .Так как все эти перепакованные пакеты попадают в раздел SVPACK , туда же где и находятся все хотфиксы.И все это дело устанавливается без проблем .
Короче решать вам .Выбор установить приложение с помошью постинсталлеров или таким спосбом ложиться перед вами.

Lupper 08-12-2005 15:20 381091

странно,ведь есть методы и без участия пользователя вполне- тот же простой bat файлик и просто распаковка sfx архива. а этот какой-то замудрённыё. впрочем может я ещё не оценил полностью этот метод.

dimadr 08-12-2005 16:53 381119

Пробный "шар": Антивирусная программа NOD32 русская стандартная версия 2.50.26 в триальном исполнении для интеграции в дистрибутив вот здесь.

Теплый Снег 08-12-2005 16:55 381122

Цитата:

странно,ведь есть методы и без участия пользователя вполне- тот же простой bat файлик и просто распаковка sfx архива. а этот какой-то замудрённыё. впрочем может я ещё не оценил полностью этот метод.
Грубо говоря теже яйца вид сбоку :) В смысле можно и так и эдак .Как вам угодно.



Цитата:

Пробный "шар": Антивирусная программа NOD32 русская стандартная версия 2.50.26 в триальном исполнении для интеграции в дистрибутив вот здесь.
Спасибо скачаю и проверю.

UnDetect 23-12-2005 10:35 386076

Есть ли информация как интегрировать полученные кабы в систему руками без участия NLite или RVM Integrator'а?
Я сейчас проверю их, но все же фоном крутится мыслишка "Как бы RIS образ не испортить..."

Теплый Снег 23-12-2005 10:45 386079

Цитата:

Есть ли информация как интегрировать полученные кабы в систему руками без участия NLite или RVM Integrator'а? Я сейчас проверю их, но все же фоном крутится мыслишка "Как бы RIS образ не испортить..."
есть на ангийском на том же MSFN - Не .Только врядли интеграция может запороть дистрибутив , по крайней мере вы можете сделать резервную копию образа.

UnDetect 23-12-2005 10:51 386081

Как и ожидалось, NLite матюгнулся на нехватку файлов в образе.

Можете скинуть ссылку на оригинал с описанием ручного добавления cab файлов в дистрибутив?

D@nil 25-12-2005 20:08 386735

Теплый Снег
Рульная статья!
А .NetFramework пробовали перепоковать?

Doombas 25-12-2005 22:07 386748

Теплый Снег

Я не совсем понимаю, получается что я могу уже установленую програму запаковать в SFX архив создать INI файл всё это дело запаковать ну скажем CabPack-ом и потом просто итегрировать nLite в дистрибутив. И если програма уже руссифицирована стало быть такой она и будет после установки?
Если так, мне что не обязательно применять ключи, которые используются с инсталятором этой програмы? И какие тогда надо использовать? Как то это всё просто получается потому моему мыслительному процессу недоступно.

Теплый Снег 26-12-2005 11:32 386832

Цитата:

Рульная статья! А .NetFramework пробовали перепоковать?
В принципе можно , только зачем он уже есть перепакованный :) Тут на форуме найти можно ссылку , или здесь

Теплый Снег 26-12-2005 11:34 386834

Цитата:

Как и ожидалось, NLite матюгнулся на нехватку файлов в образе. Можете скинуть ссылку на оригинал с описанием ручного добавления cab файлов в дистрибутив?
Nlite поставьте в угол :)
А если серьезнее , то можно будет подробнее сказать , чего вы натворили , что Nlite не хочет интегрировать ?

Теплый Снег 26-12-2005 11:36 386836

Цитата:

Я не совсем понимаю, получается что я могу уже установленую програму запаковать в SFX архив создать INI файл всё это дело запаковать ну скажем CabPack-ом и потом просто итегрировать nLite в дистрибутив. И если програма уже руссифицирована стало быть такой она и будет после установки? Если так, мне что не обязательно применять ключи, которые используются с инсталятором этой програмы? И какие тогда надо использовать? Как то это всё просто получается потому моему мыслительному процессу недоступно.
Именно поэтому В начале статьи я давал ссылку на статью о создании SFX архивов , но тем не менее это не слишком усложняет процесс установи (интеграции) приложений.Тем более что всю необходимую информацию можно найти на сайте и на форуме , а описывать все в одной статье невозможно.

Doombas 28-12-2005 16:20 387555

Тогда ещё один тупой вопрос. Если я интегрирую програму в дистрибутив её установка происходит во время установки ОС или после первой загрузки как и в случае RunOnceEx?

specialist 28-12-2005 16:41 387558

Doombas
цитирую тебя :)
Цитата:

во время установки ОС

DUB 11-01-2006 12:05 391064

После попытки обновления SP1 до SP2 прошло сообщение, что невозможно установить по какой-то причине, я вышел из переустановки,перезагрузил, и обнаружил, что поменялись настройки экрана.

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

vek 23-01-2006 09:27 396107

Уважаемые господа!

Есть перепакованый WMP10.exe (тихий инсталл)=10-12Mb
При попытке создания .CAB для него, makecab отрабатывает нормально (пишет что начальный размер 10 метров конечный размер =9,8 метров), но на дирректорию выше получаю CAB файл размером 130 KB в котором .ini файл и wmp10.exe. Проблема в том, что при попытке извлечь файл wmp10.exe, WinRar матюгнулся и сказал, что это не первый том архива. Тоже самое при интеграции Framework. А мелкие программки упаковываются нормально. В чем может быть проблема?

Mrempty 23-01-2006 10:39 396145

Народ а кто нибудь занимался внедрением прог типа Nav corp или еще какх-нибудь тяжелых программ?

Porscheman 03-02-2006 02:22 400261

Господа! Помогите дельным советом...

Есть уже давно (относительно) собранный дистрибутив в который вживлен WinRAR от Ryan(-а) и выдирать его не хочется, равно как и пересобирать дистрибутив. Но кое-что в этом WinRAR меня не устраивает, а именно:
1. Как он прописывается в пуск->программы.
2. Хочется добавить "русик"
Сейчас запускаю "коррекционный" тихий файл из svcpack, но это не правильно!

Посему вопросы:
1. Если в *.inf файле из раздела [string] убрать строку Link с названием папки, то ярлык пропишется во "все программы"?
2. После интеграции аддона в i386 появился WinRAR.cab, в который ни одна из программ типа WinACE и т.п. не хочет дописывать файлы.
Если тупо его разархивировать, а потом собрать по-новой, как описано в первом посте - сработает? Или там еще какие парметры есть?


boss911 03-02-2006 18:30 400499

Porscheman

Цитата:

1. Как он прописывается в пуск->программы.
Код:

Windows Registry Editor Version 5.00
 
[HKEY_CURRENT_USER\Software\WinRAR\Setup\Links]
"Programs"=dword:00000000

Про руссификатор незнаю, так как есть сам руссифицированый дистрибутив! Лучше будет прожеч заново дистр. с виндой и включить туда обновленный WinRAR, который можно собрать тем же WinRAR'ом в SFX архив:
Код:

Path=WinRAR
Setup=regedit.exe /s Settings.reg
Setup=uninstall.exe /setup /s
Silent=2 или 1(невидимый)
Overwrite=1
Title=WinRAR 3.51


Porscheman 04-02-2006 16:59 400783

boss911
Спасибо! Только это не совсем то,что хочется...

Повторюсь: дело в том, что в дистрибутив уже вживлен WinRAR, то есть наличиствует winrar.cab и winrar.inf на которые где-то прописаны ссылки и при удалении этих двух файлов винда при установке ругается. Следовательно их надо модифицировать.
В данном случае за ярлыки отвечает inf-файл, а сами файлы в cab-файле.
Сейсас пойду попытаюсь сделать то, что уже написано мною выше. Просто не хотелось экспериментировать наобум. Отпишусь, может кому потом пригодится.

Alex333 08-02-2006 22:36 404600

А как таким образом установить программу, требующую регистрации(ввода серийника)?
Здесь об этом ни слова - а ведь большая часть качественного софта требует регистрации.
И еще вопрос: программа NeroBurningRoom английская, требуется установка русификатора. Для русификатора создать свой SFX-архив? Как соблюсти порядок установки(сперва программа, потом русификатор).

Все параметры, в том числе серийник, прописывать в SFX-архиве?

Теплый Снег 09-02-2006 10:40 404712

Цитата:

А как таким образом установить программу, требующую регистрации(ввода серийника)? Здесь об этом ни слова - а ведь большая часть качественного софта требует регистрации. И еще вопрос: программа NeroBurningRoom английская, требуется установка русификатора. Для русификатора создать свой SFX-архив? Как соблюсти порядок установки(сперва программа, потом русификатор).

Все параметры, в том числе серийник, прописывать в SFX-архиве?


Регистрация программ дело сугубо индивидуальная. ОДни регистрируются кей-файлами например WinRar , другие рег-файлами - SystemMechanic (старый по крайней мере так регистрируется) , третьи всевозможными патчами - Alcohol 120% ... И так далее .Как видите универсального средства регистрации нет .И все что вам нужно - это немного времени , интернет и любой поисковик.

А насчет русификации - они тоже бывают разными и подход к ним такой же как и к регистрации.

Удачи.

AlexALSP 13-11-2007 09:05 677779

А можно еще раз описать что где вылетает. А то написано в шапке, вот токое, там токое а самих рисунков посмотреть нема.

Я пробовал макекабом но шото не то получается. В кабе один только ини.

Расскажите еще раз как его создавать и интегрировать. Ладно интегрировать или помещать в внинду понят7но а вот как создать и все овормить не понятно.

Stopi4 01-10-2008 03:25 912998

Проблема такая. Когда открываю созданный CAB-файл внутри него только ini-файлик.EXEшки рядом нету. В чём может быть проблема?

Vadikan 01-10-2008 03:45 913002

Stopi4, makecab добавляет один файл за раз, а вам нужно несколько. Пуск - выполнить - iexpress

См. также Руководство по созданию аддонов для набора обновлений UpdatePack-RUS

Stopi4 01-10-2008 13:36 913282

Vadikan, дело в том что я автоматизирую сей процесс, т.к. программ штук 40ок ++ обновляются каждые пару месяцев. Написал консольное приложения на C# которое используя возможности CMD выолняет построенные выше алгоритм несколько раз. Как можно обойти использование программы "iexpress"? а использовать только makecab или его "массовый" аналог.

vserd 01-10-2008 16:58 913436

Цитата:

Цитата Stopi4
Как можно обойти использование программы "iexpress"? а использовать только makecab »

cmd /k makecab /?
и прочитать по поводу ключа /F

aleksking 14-11-2008 12:21 952452

Как создать ini файл.Не могу понять.

chek88 06-01-2009 01:06 998389

Помогите собрал cab по интрукции пробовал итегрировать обоими способами но в папке \I386\SVCPACK\ ничего нет в чем может быть проблема

A drum moons 26-01-2015 10:17 2461431

Привет из 2015! Может кто подскажет где найти (находить) msi файлы для создания sfx архивов, и что делать если их несколько?
В качестве примера инсталлирую install_flash_player_16_active_x.exe (версия 16.0.0.287), ищу msi и нет их нигде.

Думаю ладно, я тебе поставлю ключ /a и извлеку в папочку, а там может и msi найдется. А мне выдает: изображение.
Делаю по статье Создание SFX архива -> Подготовка к созданию SFX, подскажите кто живой!

sedarmill 26-01-2015 10:35 2461440

Ну на сайте адоба есть msi, если дело в этом..
http://www.adobe.com/ru/products/fla...ribution3.html

A drum moons 26-01-2015 13:00 2461507

А как узнать тип инсталятора используемый автором при упаковывании самого этого инсталятора?
Просто натолкнулся на эту статью и озадачился. Ведь exe'шник мог быть упакован по всякому.
А мне многие инсталяторы надо сделать с тихой установкой.

A drum moons 27-01-2015 13:32 2462124

Программы для анализа исполняемых файлов - программы для анализа компиляции и упаковщике
Автоматические распаковщики инсталляторов - собственно распаковщики инсталяторов


Время: 20:56.

Время: 20:56.
© OSzone.net 2001-