Практическое применение INF-файлов.
Разберем пример 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-файла программы установки.
