![]() |
Приветствую господа античатовцы.
Недавно наткнулся на статью где описывалось создание инсталла для WIN 9X. Заинтересовавшись я решил сделать свой для NT систем. Суть заключается в написании просто inf файла который установит нашу маленькую программу.Почему не взять нормальные программы для создания инсталл пакетов?Да они хороши,но для больших программ,для маленькой не оправдает средства. Ближе к делу. Что понадобится (инструменты) 1)Любой текстовый редактор.Я юзаю notepad++ 2)Файлы установки.Подопытной взял Одну интересную прогу SLESH'a, ссылка на топ /showthread.php?p=2199120 3)Любой компилируемый язык программирования работающий с api функциями.(я использовал assembler) начнем Итак я буду писать код inf файла и раскоментирую все подробно. Создаем заголовок Код:
[Version]Код:
[strings]Код:
[SourceDisksNames] Читается из секции [strings] Код:
[SourceDisksFiles]Код:
[Optional Components]описуем секцию установки Код:
[DefaultInstall]UpdateInis = AddShortcuts- создание ярлыков AddReg = AddUninstall- внесение информации в реестр (удаление будет происходить через апплет установка и удаления программ) ProfileItems =AddShortcut - также создание/удаление ярлыков,только в разных группах Код:
[DefaultUninstall]BeginPrompt = BeginUPromptSection тут мы выводим сообщение о подтверждении удаления программы DelFiles = CopyINFfiles,mainfiles -собсна,удаляем скопированные файлы UpdateInis = DelShortcuts,ProfileItems =DelShortcut -удаляем ярлыки DelReg = DelUninstall -удаляем ключи EndPrompt = UninstallEndPrompt выводим конечное сообщение. Код:
[AddShortcut]Что тут что значит: name= "zalil" -что будет отображаться ,0x00000008,9="%UserProfile%\SendTo" то-бишь создаем ярлык там. CmdLine = 16422,"slil",slil.exe Cmdline -путь к исполняемому файлу с парам. ProgramFiles.+ имя экзэшника.Соотв.и удаляем его же. Код:
[DestinationDirs]в секции главных файлов (будет дальше) копируем в програм файлс. Путь как в ДОС 8 символов два последних ~1 CopyINFfiles =17 каждая директория диска имеет номер 17- C:\windows\inf помещаем туда наш установочный файл,который будет использован апллетом для удаления файлов и инф. Код:
[CopyINFfiles]Код:
[AddShortcuts]Код:
[DelShortcuts]Код:
[AddUninstall]2)Запускается секция [DefaultUninstall] дело в том что в венде имеется два интерпретатора inf файлов это setupapi и advpack оба находятся в динамических библиотеках,каждый имеет свои параметры %17%...ю я описывал выше,тут запустится наш инсталл файл из C:\windows\inf Код:
[DelUninstall]Код:
[BeginUPromptSection]Вот собсно и все. Только вот по дефолту инф файлы открываются блокнотом,по этому не помешало бы написать микро-лаунчер.я буду делать на ассемблере пояснения(хах,там вызов 3-4 функций)в коментах Код:
;This program was created in assembler editorпомещаем инстал файлы в папку setup, а install.exe снаружи. Программа Slesh'a весит 7,5 кб inf файл 1,85 кб help.txt 943 байта install.exe 877 байт размер дистрибутива > устанавливаемой программы на 3707 байт. кладем все через hamster в 7Z и получаем установочник весом 5,03 кб то есть даже меньше чем исходная программа. Также inf файлы широко применяются у мелкомягких в установке программ и драйверов. Спасибо за внимание ,надеюсь кому то было интересно. |
Спасибо. Я обычно на дельфе с помощью реестра извращаюсь, когда инсталл пакет делаю. Теперь буду знать новый способ
|
| Время: 00:29 |