Практическое применение INF-файлов.
Материал на примере показывает создание полнофункциональной программы установки в Блокноте, т.е. сценария установки, который выполняется самой операционной системой 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-файла программы установки.

Copyright © 2002-2008 by Vladimir Drigalkin aka LENIN INC. All Rights Reserved.