| Материал на примере показывает создание полнофункциональной программы установки в Блокноте, т.е. сценария установки, который выполняется самой операционной системой Windows.
Разберем пример INF-файла, который копирует себя в каталог INF в папке Windows, создает программную группу и ярлыки в меню Пуск/Программы. Программная группа будет называться "LENIN INC Windows Plus" и содержать ярлыки к стандартным утилитам Windows: "Редактор реестра" и "Блокнот". Эти программы в любом случае присутствуют в вашей системе.
После копирования INF-файла и создания программной группы в меню Пуск, в реестр будет добавлена информация для их удаления. Эта информация - "LENIN INC Windows Plus (только удаление)" - будет отображена в апплете Панели управления "Установка и удаление программ". Выбрав этот параметр, и нажав кнопку удалить, будет выведено окно с запросом об удалении. Данное окно создается автоматически, а текст, который оно содержит, берется из INF-файла, скопированного нами в папку INF. После того, как Вы нажмете кнопку "Да", из меню Пуск будет удалена созданная программная группа, а из реестра - соответствующий ключ.
Здесь приводится файл Windplus.inf с подробными комментариями, которые расположены после точки с запятой (можете их оставить, они игнорируются). Скопируйте текст, представленный ниже, в текстовый документ, переименуйте файл на Windplus.inf и поместите в корневой каталог жесткого диска. Для установки INF-файла вам нужно будет щелкнуть по нему правой кнопкой мыши и выбрать в появившемся контекстном меню параметр "Установить" (Install).
Исходник файла Windplus.inf:
[Version]
Signature=$Chicago$
;Секция установки
[DefaultInstall]
CopyFiles = CopyINFfiles ;Копируем файл
UpdateInis = AddShortcuts ;Создаем ярлыки
AddReg = AddUninstall ;Добавляем информацию в реестр
;Секция удаления
[DefaultUninstall]
BeginPrompt = BeginUPromptSection ;Выводим запрос пользователю
DelFiles = CopyINFfiles ;Удаляем файл
UpdateInis = DelShortcuts ;Удаляем ярлыки
DelReg = DelUninstall ;Удаляем информацию из реестра
EndPrompt = UninstallEndPrompt ;Извещаем об успешном удалении
;Имя диска установки, Название %APP_NAME% равно "LENIN INC Windows Plus".
;Читается из секции [strings] (см. в самом низу)
[SourceDisksNames]
1 = %APP_NAME%,"",1
;Файл, входящий в данный дистрибутив
[SourceDisksFiles]
windplus.inf = 1
;Каталог назначения
[DestinationDirs]
CopyINFfiles = 17 ;17 - каталог INF в папке Windows
;Файл, который копируються в каталог INF в папке Windows
[CopyINFfiles]
windplus.inf,,,1
;Определяете программную группу, название ярлыков и размещение программ
[AddShortcuts]
;Ярлык Редактор реестра
setup.ini, progman.groups,, "group1=""%APP_NAME%"""
setup.ini, group1,, """Редактор реестра"",""""""%30%\WINDOWS\Regedit.exe"""""",,,,""%30%\WINDOWS"",""Regedit.exe"""
;Ярлык Блокнот
setup.ini, progman.groups,, "group1=""%APP_NAME%"""
setup.ini, group1,, """Блокнот"",""""""%30%\WINDOWS\Notepad.exe"""""",,,,""%30%\WINDOWS"",""Notepad.exe"""
;Определяете ярлыки, которые будут удалены после того, как Вы запустите
;процесс деинсталляции
[DelShortcuts]
;Ярлык Редактор реестра
setup.ini, progman.groups,, "group1=""%APP_NAME%"""
setup.ini, group1,, """Редактор реестра"""
;Ярлык Блокнот
setup.ini, progman.groups,, "group1=""%APP_NAME%"""
setup.ini, group1,, """Блокнот"""
;Определяете информацию, которая будет добавлена в реестр. Часть этих
;данных, а точнее - LENIN INC Windows Plus (только удаление) - можно будет увидеть
;в апплете Панели управления Установка удаления программ.
[AddUninstall]
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%APP_NAME%","DisplayName",,"LENIN INC Windows Plus (только удаление)"
;Определяете команду, которая выполняет удаление. Запускается секция [DefaultUninstall]
;файла windplus.inf, который находится в папке INF (17)
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%APP_NAME%","UninstallString",,"RunDll32 advpack.dll,LaunchINFSection %17%\windplus.inf, DefaultUninstall"
;Удаляем ключ рестра
[DelUninstall]
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%APP_NAME%"
;Определяете информацию, которая будет отображена в окне, отображаемого
;в процессе деинсталляции
[BeginUPromptSection]
Prompt = "Вы действительно хотите удалить LENIN INC Windows Plus?" ;Ваш запрос
ButtonType = YESNO ;Кнопки Да/Нет
Title = Удаление... ;Заголовок окна
;Сообщение после удаления программы
[UninstallEndPrompt]
Prompt = "Программа успешно удалена!"
;Локализированные строки
[strings]
APP_NAME = "LENIN INC Windows Plus" |
Корпорация Microsoft широко использует INF-файлы в своих инсталяционных пакетах. Поэтому, если у вас будут возникать вопросы, как программа внесла такие-то изменения, посмотрите исходник INF-файла программы установки.
|