inf файл что такое
INF – Файл конфигурации установки программ (Setup Information File)
Расширение INF
Чем открыть файл INF
В Windows: Microsoft Windows, Блокнот, NotePad++, Любой текстовый редактор
В Mac OS: MacroMates TextMate, Любой текстовый редактор
Описание расширения INF
Популярность:
Расширение INF – это текстовый файл, который содержит информацию об устройствах и файлах для установки, например, образы драйверов, информация о реестре, расположение файлов и директорий, информация о версии и так далее, всё, что используется компонентами установки.
.INF состоит из множества названных секций, каждая из которых содержит одну или более позиций. Каждый раздел начинается с имени секции в квадратных скобках. Разделы имеют определенную цель (например, для копирования файлов или добавить записи в реестр) и содержат элементы, имеющие вид Имя=Значение. INF-файлы по сути похожи на INI-файлы. Файлы INF в основном используются для установки драйверов и системных инсталляционных пакетов Microsoft Windows, но так же могут быть использованы и для установки других приложений.
ПРИМЕЧАНИЕ: Самый известный INF-файл – это Autorun.inf, используемый для автоматического запуска или установки приложений в операционной системе Windows (начиная с версии Windows 95). Этот файл должен находиться в корневом каталоге файловой системы устройства, для которого осуществляется автозапуск.
MIME тип: application/inf
HEX код: 5B 61 75 74 6F 72 75 6E 5D 0D 0A
ASCII код: [autorun]
Другие программы, связанные с расширением INF
Относится к разделу Другие файлы.
Популярность:
INF-файлы
INF-файлы
В данной статье мы рассмотрим, что представляет собой INF-файл, как с его помощью работать с другими файлами и реестром, создавать ярлыки, запускать программы и т.д.
Как известно, для более-менее серьезного программного продукта обычно требуется специальная программа инсталляции, с помощью которой пользователь сможет легко установить и так же легко удалить сам продукт. Существует много инструментальных средств, позволяющих быстро создавать инсталляционные пакеты. Однако, большинство из них добавляют к исходному размеру программы 200–500 Кб. А ведь это далеко не всегда радует. Серьезный продукт не обязательно должен быть внушительных размеров. И если вы хотите сделать инсталляцию доступной в Сети, то эти 200–500 Кб могут сильно сказаться на популярности продукта.
Как выйти из подобной ситуации? Здесь на помощь придут inf-файлы. Именно с помощью inf-файлов можно удалять, копировать другие файлы, добавлять информацию в реестр, в ini-файлы, создавать ярлыки, в общем, все то же, что обеспечивают громоздкие программы установки.
Перейдем к изучению спецификации inf-файлов.
inf-файл представляет собой текстовый файл, который, содержит условия установки программного обеспечения.
Секция [Version] обязательно должна включать строку Signature=»$Chicago$»
Секция установки [DefaultInstall] может содержать следующие параметры:
CopyFiles — копирование файлов;
RenFiles — переименование файлов;
DelFiles — удаление файлов;
UpdateInis — изменение данных в ini-файлах;
AddReg — добавление информации в реестр;
DelReg — удаление информации из реестра;
Ini2Reg — перемещение строки или секции в ini-файлах;
UpdateCfgSys — изменение файла Config.sys;
UpdateAutoBat — изменение файла Autoexec.bat.
Этим параметрам в качестве значения присваивается имя секции с файлами. Например:
Example.html ;файл для копирования.
[DestinationDirs] ;Секция расположения каталогов
DestExampleFiles=10 ;Каталог назначения (т.е. копировать в папку Windows)
30 — Корневой загрузочный диск (обычно C:).
Например, если нужно скопировать файл в папку Web, которая находится в каталоге Windows, сделайте это так:
Так же можно поступить и с другими папками, находящимися в определенных каталогах.
Параметр CopyFiles содержит имя секции, где находятся имена файлов для копирования с исходного диска в папку назначения. Папка назначения определяется в секции [DestinationDirs] inf-файла. В следующем примере копируются два файла:
Copyfiles=ExampleCopyFiles ;секция может быть названа как угодно
;Перечисляете файлы, которые содержатся на диске
;Перечисляете файлы для копирования (о цифрах через три запятые читайте ниже)
;Указываете папку, в которую будут копироваться файлы (10 — Windows)
Цифры через три запятые обозначают дополнительные флаги при копировании файлов и могут принимать значения, представленные в
Параметр CopyFiles может копировать файл непосредственно из строки. Для этого перед именем файла нужно поставить символ @. В следующем примере копируются два текстовых файла:
;Перечисляете старые имена файлов
;Определяете файлы, которые будут переименовываться
;Указываете папку, в которой будут переименовываться файлы (10 — Windows)
В параметре AddReg указываются секции, которые содержат информацию о добавлении или изменении ключей, значений в реестре. Следующий пример регистрирует вашу копию операционной системы Windows.
;Определяете информацию, которая будет добавлена в реестр
HKLM, «SOFTWAREMicrosoftWindowsCurrentVersion», «RegDone»,,»1″
HKLM, «SOFTWAREMicrosoftWindowsCurrentVersion WelcomeRegWiz»,»@»,,»1″
С помощью этого файла в реестр добавляется следующая информация:
Обратите внимание на запятые в inf-файле. Если нужно добавить в реестр параметр по умолчанию, запятые должны быть проставлены иначе. Например, в рассмотренном нами ключе реестра HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersion сделаем параметр по умолчанию равным единице (1):
HKLM, «SOFTWAREMicrosoftWindowsCurrentVersion». «1»
Ниже представлены корневые имена реестра, применяемые в inf-файлах.
HKR — относительный ключ, используется классом installer; обычно применяется для дисков устройства.
В параметре DelReg указываются секции, которые содержат информацию об удалении подключей с параметрами и значениями из реестра. Следующий пример демонстрирует удаление подключа Graphviz со всеми параметрами и значениями этого раздела реестра — HKEY_CURRENT_USERSoftwareAT&TGraphviz:
;Определяете информацию, которая будет удалена из реестра
Корневые имена реестра, естественно, обозначаются так же, как и при добавлении информации в реестр.
;Отображение файла справки About.hlp
HKLM,SoftwareMicrosoftWindowsCurrentVersionRunOnceSetup,%ABOUT%,,»WINHLP32.EXE — Main %1%About.hlp»
;Отображение текстового файла About.txt
;Запуск файла сценария Example.inf
HKLM,SoftwareMicrosoftWindowsCurrentVersionRunOnceSetup,%ABOUT%,,»rundll setupx.dll,InstallHinfSection DefaultInstall 132 %1%Example.inf»
;Определяете название, которое будет отображаться в окне «Установка Windows 98»
После того как определенные в секции [ExampleView] команды выполнятся, записи, добавленные в реестр, будут автоматически удалены из него. Таким образом можно запускать и другие процессы, например апплеты Панели управления:
;Запуск апплета Панели управления Свойства: Система (SYSDM.CPL)
В следующем примере показано, как с помощью inf-файла изменить содержимое ini-файла:
;Указываете папку, где находится файл system.ini — например в папке Example, которая расположена в каталоге C:Program Files
;Определяете название файла и секции добавляемых, удаляемых или заменяемых строк
;Добавляете в секцию [boot] файла system.ini строку shell=Example.exe
system.ini, boot,, «shell=Example.exe»
;Удаляете из секции [boot] файла system.ini строку shell=Example.exe
system.ini, boot, «shell=Example.exe»
;Заменяете из секции [boot] файла system.ini строку shell=Example.exe на shell=Example8.exe
system.ini, boot, «shell=Example.exe», «shell=Example8.exe»
С помощью inf-файлов можно также создавать/удалять ярлыки в меню Пуск. Ярлык можно создать в уже созданной группе программ. Если таковой не существует, она будет создана автоматически.
Следующий пример создает группу программ Windows + + в меню Пуск > Программы и ярлыки к утилитам winipcfg.exe (Конфигурация IP), Regedit.exe (Редактор реестра) и Winfile.exe (Диспетчер файлов — только в Win98). Все они есть у вас на компьютере и лежат в папке Windows.
;Определяете название и размещение ярлыков
setup.ini, progman.groups,, «group1=»»Windows + +»»»
setup.ini, group1,, «»»Конфигурация IP»»,»»»»»»%30%WINDOWSwinipcfg.exe»»»»»». «»%30%WINDOWS»»,»»winipcfg.exe»»»
setup.ini, progman.groups,, «group1=»»Windows + +»»»
setup.ini, group1,, «»»Редактор реестра»»,»»»»»»%30%WINDOWSRegedit.exe»»»»»». «»%30%WINDOWS»»,»»Regedit.exe»»»
setup.ini, progman.groups,, «group1=»»Windows + +»»»
setup.ini, group1,, «»»Диспетчер файлов»»,»»»»»»%30%WINDOWSWinfile.exe»»»»»». «»%30%WINDOWS»»,»»Winfile.exe»»»
Ярлык прописывается в таком порядке:
1. Название группы программ. В нашем случае — Windows + +.
3. Путь к программе, к которой создается ярлык.
4. Рабочий каталог, обычно тот же, что и путь. Некоторые программы не работают, если это условие не выполняется.
5. Имя программы с расширением.
Параметр %30% определяет корневой диск. Если вы хотите создать ярлык к файлу, который находиться в каталоге Program Files, смело прописывайте полный путь (не используйте короткие имена), например %30%Program FilesSetup Generator ProSgpro.exe.
Для удаления ярлыка нужно убрать все записи, указанные после имени ярлыка. В следующем примере удаляется ярлык Конфигурация IP из программной группы Windows + +.
setup.ini, progman.groups,, «group1=»»Windows + +»»»
setup.ini, group1,, «»»Конфигурация IP»»»
Если вы удаляете один из ярлыков программной группы, то удаление не затронет другие ярлыки. Для полного удаления программной группы нужно прописать данное действие для каждого ярлыка.
Следующий ключ используется для переименования файлов:
Этот ключ используется для удаления файлов:
Для действий переименования или удаления нужно добавить подключ с любым именем в соответствующую ветвь реестра. Минимум два ключа должны быть определены. Первый ключ содержит имя каталога, где будет происходить переименование или удаление файлов. Следующий ключ содержит имена файлов: первое — короткое, второе — длинное и его атрибуты, если нужно:
1 — Только для чтения;
Следующий пример демонстрирует переименование в каталоге C:Files файла About.txt в About View files.txt и установление ему атрибута «Скрытый», а также переименование того же файла в подкаталоге Xmp папки C:Files с установлением ему атрибута «Только для чтения»:
HKLM,SoftwareMicrosoftWindowsCurrentVersionRenameFiles Example. «%30%Files»
HKLM,SoftwareMicrosoftWindowsCurrentVersionRenameFiles Example,About.txt,,»About View files.txt,2″
HKLM,SoftwareMicrosoftWindowsCurrentVersionRenameFiles SubDir. «%30%FilesXmp»
HKLM,SoftwareMicrosoftWindowsCurrentVersionRenameFiles SubDir,About.txt,,»About View files.txt,1″
Ключи для удаления файлов имеют такую же структуру. Рассмотрим пример, который в каталоге C:Files удаляет файл About View files.txt и такой же файл удаляет в подкаталоге Xmp папки C:Files:
HKLM,SoftwareMicrosoftWindowsCurrentVersionDeleteFiles Example,About.txt,,»About View files.txt»
HKLM,SoftwareMicrosoftWindowsCurrentVersionDeleteFiles SubDir. «%30%FilesXmp»
HKLM,SoftwareMicrosoftWindowsCurrentVersionDeleteFiles SubDir,About.txt,,»About View files.txt»
Параметры Example и SubDir могут быть любыми, например названием вашей программы, подкаталога и т.д. Важно, чтобы они были разными, т.к. переименование/удаление происходит в разных каталогах.
Данная статья не претендует на полноту, но надеюсь, поможет читателю освоить inf-файлы хотя бы поверхностно. Не бойтесь экспериментировать, но будьте предельно осторожны, особенно с процессами удаления.
Читайте также
Файлы
Файлы По многочисленным просьбам открываем раздел с полезными файлами для W2k. Раздел состоит из двух частей, первая официальные патчи от Microsoft (не все, а только те, что кажутся нам наиболее важными), и вторая часть, куда войдут все файлы упоминавшиеся в FAQ, просто утилитки,
Скачиваем файлы
Скачиваем файлы Конечно, современный Интернет – это не только (и не столько) бесконечное ползание по страничкам: ведь мы отправляемся в сеть не только за информацией, но и за ФАЙЛАМИ. И неважно, что это: драйверы для наших видеокарт и принтеров, музыка, фильмы или
Пересылаем файлы
Пересылаем файлы Чтобы отправить любой файл (в том числе и фотографию) в интерактивном режиме, нужно:1. Воспользоваться командой Файл | Отправить файл или фото.2. На экране откроется диалоговое окно, в котором нужно будет выбрать файл на вашем компьютере и нажать кнопку
1.4.2. Файлы устройств
CPL-файлы
CPL-файлы Из нескольких предыдущих абзацев вы узнали практически все теоретические выкладки, которые необходимы для работы с программой rundll32.exe. Сейчас же будут перечислены те возможности, которые данная программа может предоставить пользователю. Начнем с описания
SCF-файлы
SCF-файлы Файлы с таким расширением являются командными файлами оболочки Windows и используются для различных целей. Например, можно создать файл, который будет сворачивать все окна. Его содержимое приведено в листинге 17.3. Если ввести подобный текст в текстовый файл, а потом
DBX-файлы
DBX-файлы В файлах с расширением DBX хранятся записи программы Outlook Express. В этих файлах, называемых Банком сообщений, находятся письма, сообщения новостных групп и т.п. При желании, можно скопировать эти файлы на носитель информации для переноса данных в другой компьютер.
INF-файлы
INF-файлы В данной статье мы рассмотрим, что представляет собой INF-файл, как с его помощью работать с другими файлами и реестром, создавать ярлыки, запускать программы и т.д.Как известно, для более-менее серьезного программного продукта обычно требуется специальная
10.3. Файлы конфигурации
10.3. Файлы конфигурации Файл конфигурации (run-control file) — файл объявлений или команд, связанных с программой, которая интерпретирует его во время запуска. Если программа имеет специфическую для данного узла конфигурацию, которая совместно используется всеми пользователями
1.5.3. Файлы заголовков
1.5.3. Файлы заголовков Много информации о системных функциях можно почерпнуть из системных файлов заголовков. Они находятся в каталогах /usr/include и /usr/include/sys. Например, если компилятор сообщает об ошибке вызова системной функции, загляните в соответствующий файл заголовков
2.1.7. Временные файлы
2.1.7. Временные файлы Иногда программе требуется создать временный файл, например для промежуточного хранения большого объема данных или для передачи данных другой программе. В системах GNU/Linux временные файлы хранятся в каталоге /tmp. Работая с временными файлами,
Исходные файлы
Исходные файлы Текст программы на языке Си может быть разделен на несколько исходных файлов. Исходный файл представляет собой текстовый файл, который содержит либо всю программу, либо ее часть. При компиляции исходной программы каждый из составляющих ее исходных файлов
5.11.2. Файлы устройств
5.11.2. Файлы устройств Отдельного разговора заслуживают файлы устройств. Для Linux нет разницы между устройством и файлом. Все устройства системы представлены в корневой файловой системе в виде обычных файлов. Как уже упоминалось, файлы устройств хранятся в каталоге /dev.
4.3. Файлы
4.3. Файлы В завершение главы рассмотрим три несложных примера работы с файлами: копирование файла (с отображением хода копирования в ProgressBar), определение значков, ассоциированных с файлами, и извлечение значков из ЕХЕ– и DLL-файлов.Красивое копирование файлаКазалось бы,
Файлы
Файлы Файлы – одно из фундаментальных понятий в компьютерной технологии и программировании. Но поскольку данная книга рассчитана на пользователей компьютера, я не буду давать точного определения файла, дабы не запутать вас и не запутаться самому.Если после прочтения
Расширение файла INF
Setup Information Format
Что такое файл INF?
Программы, которые поддерживают INF расширение файла
Следующий список содержит программы, сгруппированные по 2 операционным системам, которые поддерживают INF файлы. Файлы с расширением INF, как и любые другие форматы файлов, можно найти в любой операционной системе. Указанные файлы могут быть переданы на другие устройства, будь то мобильные или стационарные, но не все системы могут быть способны правильно обрабатывать такие файлы.
Программы, обслуживающие файл INF
Как открыть файл INF?
Проблемы с доступом к INF могут быть вызваны разными причинами. С другой стороны, наиболее часто встречающиеся проблемы, связанные с файлами Setup Information Format, не являются сложными. В большинстве случаев они могут быть решены быстро и эффективно без помощи специалиста. Мы подготовили список, который поможет вам решить ваши проблемы с файлами INF.
Шаг 1. Установите Microsoft Windows программное обеспечение
Шаг 2. Убедитесь, что у вас установлена последняя версия Microsoft Windows

Шаг 3. Свяжите файлы Setup Information Format с Microsoft Windows
Если проблема не была решена на предыдущем шаге, вам следует связать INF файлы с последней версией Microsoft Windows, установленной на вашем устройстве. Процесс связывания форматов файлов с приложением по умолчанию может отличаться в деталях в зависимости от платформы, но основная процедура очень похожа.
Выбор приложения первого выбора в Windows
Выбор приложения первого выбора в Mac OS
Шаг 4. Убедитесь, что файл INF заполнен и не содержит ошибок
Если проблема по-прежнему возникает после выполнения шагов 1-3, проверьте, является ли файл INF действительным. Отсутствие доступа к файлу может быть связано с различными проблемами.
1. Проверьте INF файл на наличие вирусов или вредоносных программ.
Если файл заражен, вредоносная программа, находящаяся в файле INF, препятствует попыткам открыть его. Рекомендуется как можно скорее сканировать систему на наличие вирусов и вредоносных программ или использовать онлайн-антивирусный сканер. INF файл инфицирован вредоносным ПО? Следуйте инструкциям антивирусного программного обеспечения.
2. Убедитесь, что файл с расширением INF завершен и не содержит ошибок
Вы получили INF файл от другого человека? Попросите его / ее отправить еще раз. Возможно, что файл не был должным образом скопирован в хранилище данных и является неполным и поэтому не может быть открыт. Это может произойти, если процесс загрузки файла с расширением INF был прерван и данные файла повреждены. Загрузите файл снова из того же источника.
3. Проверьте, есть ли у вашей учетной записи административные права
Существует вероятность того, что данный файл может быть доступен только пользователям с достаточными системными привилегиями. Выйдите из своей текущей учетной записи и войдите в учетную запись с достаточными правами доступа. Затем откройте файл Setup Information Format.
4. Убедитесь, что в системе достаточно ресурсов для запуска Microsoft Windows
Операционные системы могут иметь достаточно свободных ресурсов для запуска приложения, поддерживающего файлы INF. Закройте все работающие программы и попробуйте открыть файл INF.
5. Убедитесь, что ваша операционная система и драйверы обновлены
Последние версии программ и драйверов могут помочь вам решить проблемы с файлами Setup Information Format и обеспечить безопасность вашего устройства и операционной системы. Устаревшие драйверы или программное обеспечение могли привести к невозможности использования периферийного устройства, необходимого для обработки файлов INF.
Вы хотите помочь?
Если у Вас есть дополнительная информация о расширение файла INF мы будем признательны, если Вы поделитесь ею с пользователями нашего сайта. Воспользуйтесь формуляром, находящимся здесь и отправьте нам свою информацию о файле INF.
Руководство по работе с INF-файлами

1. Общая информация
2. Интерпретаторы
3. Идентификационный заголовок
4. Скрипты общего назначения
5. Последовательное выполнение списка команд (AdvancedINF)
6. Копирование файлов
7. Операции с системным реестром
8. Работа с INI-файлами
9. Разное
Общая информация
Этот документ описывает синтаксис и основные принципы написания пакетных скриптов для установки приложений в среде MS Windows 4.x и выше. Технология простых инсталляционных скриптов получила название INF. Чтобы получить пользу от документа, читатель должен знать понятие и структуру системного реестра MS Windows, уметь работать с файлами, архиваторами, текстовыми редакторами (не Word ;-)), знать значение слов: двоичный файл (бинарный, бинарник), драйвер, библиотека, функция, точка входа, деинсталляция, пользователь (как системный аккаунт). То есть он должен обладать минимальными познаниями в системе и, конечно, желанием.
Введение
Ограничения:
Соглашения
Интерпретаторы
rundll32.exe libraryname,EntryPoint parameters
SETUPAPI
Основной интерпретатор. Выполняет основную массу действий:
Типичный пример запуска интерпретатора SETUPAPI для выполнения скрипта:
rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 C:\Script.inf
В случае с MS Windows 95 строка запуска будет такой:
rundll.exe setupx.dll,InstallHinfSection DefaultInstall 132 C:\Short_
1. Другой объект длиннее 8-ми символов с одинаковыми первыми 6-ю символами в DOS-интерпретации будет оканчиваться на
ADVANCEDINF
Надстроечный над SETUPAPI интерпретатор, позволяющий выполнять дополнительные функции. Стандартные функции передаёт на выполнение интерпретатору SETUPAPI. Функции, поддерживаемые интерпретатором AdvancedINF, помимо вышеописанных:
rundll32.exe advpack,LaunchINFSection C:\Script.inf,DefaultInstall,4
Дополнительные ключи и флаги запуска
Числовое значение Описание 0 или 128 Не перезагружать компьютер 1 или 129 Обязательно и без вопросов перезагрузить компьютер 2 или 130 Спросить у пользователя: перезагрузить компьютер или нет 3 или 131 Если нужно перезагружать компьютер, перезагрузить без вопросов 4 или 132 Если нужно перезагружать компьютер, спросит у пользователя перезагружать или нет
Идентификационный заголовок
Для опознавания текстового файла как файла с INF-структурой интерпретатор ищет в непустых строках секционный заголовок [Version]. Заголовок традиционно располагается в начале файла и содержит в своей секции несколько строк, определяющих тип скрипта. Заголовки бывают следующих типов: Стандартные, Драйверные и Расширенные. Тип скрипта указывает, каким именно интерпретатором следует выполнять скрипт. В зависимости от интерпретатора можно выполнять различный набор действий.
Стандартный заголовок
Скрипт со стандартным заголовком предназначен для выполнения операций общего назначения. Набор функций, поддерживаемых скриптом со стандартным заголовком, определяется интерпретатором, которому был передан на выполнение этот скрипт. Вот секция стандартного заголовка скрипта:
[Version]
Signature=»$CHICAGO$»
SetupClass=BASE
ClassGUID=
Указанные здесь параметры SetupClass и ClassGUID редко используются вместе, обычно достаточно любого из них. С драйверными заголовками ситуация несколько иная. Ограничения для использования стандартного заголовка: крайне не рекомендуется использовать при написании скрипта установки драйверов. При построении листа драйверов, соответствующих типу устанавливаемого устройства, интерпретатор отбирает скрипты драйверов именно по заголовку и драйверные скрипты со стандартным заголовком никогда не будут включены в список.
Другие ограничения на данный момент не известны.
Драйверный заголовок
Драйверный заголовок умеет обрабатывать только интерпретатор SETUPAPI. Пример драйверного заголовка:
[Version]
Signature=»$CHICAGO$»
Class=System
ClassGuid=<4d36e97d-e325-11ce-bfc1-08002be10318>
CatalogFile=sample.cat
Provider=%MSFT%
LayoutFile=layout.inf
DriverVer=03/16/2005,6.00.9830.1
Computer Display Keyboard HDC HID Image Media Modem Monitor Mouse MultiPortSerial Net Printer SCSI Adapter Smart Cart Reader
Расширенный заголовок
[Version]
Signature=»$CHICAGO$»
AdvancedINF=2.0, «Error message»
Если файл с расширенным заголовком, предназначенный для обработки интерпретатором AdvancedINF, будет в командной строке передан на выполнение для SETUPAPI, выполнен он будет как файл со стандартным заголовком.
Сигнатура системы
Скрипты общего назначения
Выполняемая секция
В каждом INF-файле присутствует выполняемая секция, определяемая уже в строке вызова INF-файла. Именно эта секция рассматривается как руководство к выполнению команд, независимо от наличия других выполняемых секций в этом скрипте. Подобный подход (в отличие от BAT-файлов) позволяет хранить множество пакетов процедур в одном и том же файле скрипта. Как правило, в одном скрипте установки хранятся пакеты процедур установки и деинсталляции приложения. Выполняемая секция содержит ключи, флаги для проверки возможности выполнения скрипта и, самое главное, параметры типов действий, чьи значения содержат имена дочерних секций, в которых прописаны объекты для выполнения действий над ними.
Параметры
Наличие параметров в выполняемой секции во многом зависит от типа скрипта (стандартный, драйверный, расширенный). В одной заголовочной секции не может быть двух и более одноимённых параметров. Имена параметров, за исключением специальных флагов, определяют тип действий, например, запись в реестр, копирование файлов. Значения этих параметров составляют имена других, дочерних секций, содержащих адреса и имена объектов для выполнения операций. Имена дочерних секций должны даваться через запятую и знак пробела. Если имён дочерних секций несколько, они выполняются по очереди, в порядке написания. Некоторые параметры должны содержать только одну секцию. Пример выполняемой секции расширенного скрипта:
[DefaultInstall]
CopyFiles=cpf.test, cpf.testAA
AddReg=adr.tester, adr.tester2
DelReg=dlr.testing
UpdateInis=ini.test_section
Правило: имена дочерних секций ( в этом примере они: cpf.test, cpf.tester,cpf.testing. ) не должны начинаться со знака цифры (0-9) и не должны быть равны зарезервированным именам параметров, как то:
CopyFiles DelFiles AddReg DelReg UpdateInis Reboot CheckAdminRights RequiredEngine CustomDestination BeginPrompt EndPrompt ComponentName ComponentVersion PreRollBack PerUserInstall RunPreSetupCommands RunPostSetupCommands. Кроме того, имена секций не должны содержать пробелов и знаков: «,’/\?*;:^()[]
Ниже приведена таблица описаний имён параметров выполняемой секции:
Реализация Active Setup (AdvancedINF)
Дочерние секции
Дочерние секции подразумевают собой обычные секции, имена которых указаны в качестве значений в параметрах основной, выполняемой секции. Одна и та же дочерняя секция может вызываться из нескольких выполняемых секций. Дочернюю секцию невозможно выполнить отдельно, вызвав интерпретатор. Этим и различаются выполняемые и обычные секции.
Некоторые параметры выполняемой секции имеют возможность воспринимать несколько дочерних секций сразу, выполняя их последовательно, одну за другой, другие могут содержать только одну дочернюю секцию и не выполняются вообще, если Вы попытаетесь указать несколько дочерних секций. К параметрам выполняемой секции, воспринимающим несколько дочерних секций, относятся: CopyFiles DelFiles AddReg DelReg UpdateInis CustomDestination DelDirs RunPreSetupCommands RunPostSetupCommands; к параметрам, воспринимающим единственную секцию следующие:PerUserInstall BeginPromptEndPrompt.
Суффиксы операционной системы
[DefaultInstall]
CopyFiles=cpf.w9x
[DefaultInstall.NT]
CopyFiles=2cpf.NT
CheckAdminRights=1
Секция Per User (Active Setup)
Последовательное выполнение списка команд (AdvancedINF)
[DefaultInstall]
RunPreSetupCommands=cmd.begin, cmd.delay_post:4
RunPostSetupCommands=cmd.end, cmd.hidden:1, cmd.no_wait:2, cmd.nowait_hidden:3
;Простое выполнение команд с показом окон и ожиданием завершения каждого процесса
[cmd.begin]
filename.exe /param1 /param2
;Выполнение команд с задержкой в 400 ms завершения каждого процесса
[cmd.delay_post]
filename.exe /param1 /param2
;Выполнение команд со скрытием окон (SW_HIDE) и ожиданием завершения каждого процесса
[cmd.hidden]
filename.exe /param1 /param2
;Выполнение команд с показом окон (SW_SHOW) и без ожидания завершения каждого процесса
[cmd.nowait]
filename.exe /param1 /param2
;Выполнение команд со скрытием окон (SW_HIDE) и без ожидания завершения каждого процесса
[cmd.nowait_hidden]
filename.exe /param1 /param2
;Простое выполнение команд с показом окон и ожиданием завершения каждого процесса
[cmd.end]
filename.exe /param1 /param2
filename2.exe /param1 /param2
filename3.exe /param1 /param2
Копирование файлов
Секции копирования
[DefaultInstall]
CopyFiles=cpf.test
[cpf.test]
filename.ext
[DestinationDirs]
cpf.test=-1, C:\Temp
[SourceDisksFiles]
filename.ext=1
[SourceDisksNames]
1=»TEST CD»,»»,0
[SourceDisksNames]
1 = «Drive_Name»,»data1.cab»,subdir
2 = «Drive_Name 2″,»»,0
[SourceDisksFiles]
filename.ext = 1
filenam1.ext = 1
filenam2.ext = 2
Директории назначения
Если в секции «куда» [DestinationDirs] не определено ни одной директории, все файлы будут копироваться в каталог по умолчанию, каковым является DIRID_SYSTEM, описанный выше в таблице. Каталог по умолчанию можно изменить (только в сессии выполнения текущего скрипта), указав в секции [DestinationDirs] параметр DefaultDestDir. Его значение будет директорией по умолчанию. Это полезно для некоторой экономии в размере файла скрипта, к примеру, при установке множества пакетов в один программный каталог. Например:
[DestinationDirs]
DefaultDestDir=24, Program Files\Program Name
Переменные путей нельзя использовать в секции [strings], в диалогах BeginPrompt и EndPrompt, в именах любых секций и в качестве обозначения типов параметров реестра. Во всех оставшихся местах, кроме секции [DestinationDirs], переменные директорий необходимо обрамлять знаками процента. В секции [DestinationDirs]этого делать нельзя. Если необходимо копировать файлы не в существующую директорию, а в её поддиректорию, необходимо указать оставшийся путь после знака запятой и пробела относительно имени переменной, как видно на примере.
Динамические директории (AdvancedINF)
При использовании расширенного формата INF-скриптов (AdvancedINF) Вы получаете возможность динамично указать переменные директории во время работы INF-скрипта, прочитав их из реестра. Полезно это, например, в случае выпуска патчей и заплат к собственному приложению, которое пользователь установил в любой удобный ему каталог. При этом INF-скрипт установщика главного приложения записал в реестре параметр со значением директории инсталляции. Этот параметр и является опорной точкой связи последующих обновлений с главным приложением. Пример значения в реестре:
[DefaultInstall]
CustomDestination=dirs.CustomDest
CopyFiles=cpf.test
[dirs.CustomDest]
49000,49001,49002,49003 = RegistryDir,5
[RegistryDir]
HKLM,»Software\Company_Name\Program_Name»,»Path»,,»Error String»
[cpf.test]filename.ext
[CustomDestination]
cpf.test = 49001
[SourceDisksFiles]
filename.ext= 1
[SourceDisksFiles]1 = «TEST»,»»,0
Теперь разберём пример. В секции [dirs.CustomDest] указаны четыре числа через запятую в качестве параметра. Это имена переменных одной и той же динамической директории в разной интерпретации. Первое число (49000) содержит путь к директории «C:\Program Files\Program Name» в формате 8.3 в кодировке OEM (DOS). То есть, эта переменная содержит строку такого вида: «C:\Progra
При этом, для того, чтобы добиться подобных значений на площади окна, нужно совершенно изменить формат записи строки в секции [RegistryDir]:
[RegistryDir]
. «Укажите директорию для распаковки»,»C:\Test»
Флаги копирования
Во время копирования файлов посредством INF-скрипта можно переименовывать файлы, то есть указывать не только каталог назначения, но и новое имя файла в каталоге назначения, а также определять поведение интерпретатора флагами копирования во время выполнения процедуры копирования при встрече ошибок. Пример описания этих возможностей дан ниже:
[DefaultInstall]
CopyFiles=cpf.files
[cpf.files]
filenam2.exe,filename.ext,2
| ID | Значение | Описание |
| COPYFLG_WARN_IF_SKIP | 0x00000001 | Выводить предупреждающее сообщение, если пользователь пытается пропустить файл после неудачной операции копирования |
| COPYFLG_NOSKIP | 0x00000002 | Скрыть кнопку пропуска файла в случае неудачного копирования. Полезно при замене важных системных файлов. |
| COPYFLG_NOVERSIONCHECK | 0x00000004 | Не обращать внимание на версию файла, который уже присутствует в месте назначения и всегда перезаписывать файлом из дистрибутива. Не есть хорошо. |
| COPYFLG_FORCE_FILE_IN_USE | 0x00000008 | заменить файл в месте назначения, даже если он используется.Теоретически при этом интерпретатор попытается переименовать в случайное мусорное имя использующийся файл, а затем скопирует файл из дистрибутива. |
| COPYFLG_NO_OVERWRITE | 0x00000010 | Не копировать файл, если он уже существует. Например, личные настройки в INI-файле некультурно заменять настройками по умолчанию при каждом обновлении программы. |
| COPYFLG_NO_VERSION_DIALOG | 0x00000020 | не копировать и не выводить вопросов, если файл в месте назначения уже существует и его версия новее, чем версия файла в дистрибутиве |
| COPYFLG_OVERWRITE_OLDER_ONLY | 0x00000040 | Не копировать, если версии совпадают. То есть заменять только старые версии файлов |
| COPYFLG_REPLACEONLY | 0x00000400 | Осуществлять операцию копирования только если файл уже существует. Полезно при выпуске обновлений к многочисленным пакетам. |
Удаление файлов и директорий
Удаление объектов можно выполнить несколькими способами. Перечислим их:
1. Удаление файлов посредством указания дочерних секций копирования в параметре DelFiles. То есть в файле скрипта уже есть секция [DestinationDirs], указывающая место расположения файлов и дочерняя секция копирования, содержащая список файлов, скопированных в каталог назначения. Остаётся лишь указать эту же секцию в параметре DelFiles. При этом секции расположения файлов в дистрибутиве ([SourceDisksFiles], [SourceDisksFiles]) не используются. Этот метод чаще всего применяется в секции деинсталляции пакета. Директории этим способом удалить нельзя, только файлы. Пример этого способа:
[DefaultInstall]
CopyFiles=files
[files]
filename.ext
[DestinationDirs]
files= 11
[Uninstall]
DelFiles=files
[DefaultInstall]
DelDirs=dirs
Cleanup=1
[dirs]
«%24%\Program Files\Program Name»
[DefaultInstall]
RunPostSetupCommands=cmd.deldirs
[cmd.deldirs]
rundll32.exe advpack,DelNodeRunDLL32 «%24%\Program Files\Program Name»
Операции с системным реестром
Следующей по приоритетности задачей после копирования файлов из дистрибутива является задача изменения ключей и параметров системного реестра. Доступны следующие функции: добавление ключей реестра, добавление параметров реестра, запись значений ключей, поддержка всех типов ключей реестра, удаление ключей реестра, удаление параметров ключей реестра, замена значений параметров реестра. Из этих возможностей проистекают другие возможности, реализация которых лежит уже не на плечах интерпретатора INF-скриптов, а на плечах самой системы, а именно: Переименование объектов и смена атрибутов, Удаление файлов при следующей перезагрузке, Деинсталляция приложения, Регистрация и отмена регистрации библиотек, однократное выполнение задачи под каждым пользователем (Active Setup).
Запись и удаление ключей реестра
Запись и удаление ключей, параметров и значений в системном реестре MS Windows посредством INF-скрипта являются базовыми процедурами, владея которыми, можно достигать и других целей. Сначала кратко о структуре системного реестра и типах параметров.
В системе существует нереляционная древовидная системная база данных для хранения всей системной информации в виде вложенных ключей, параметров ключей и их значений. Сама структура таблиц довольно проста, если не сказать «убога», потому что содержит подобие файловой системы, где объектами являются ключи содержащие данные всего двух типов: параметры и значения параметров. По сути каждый ключ является потомком INI-файла, из которого убрали понятие секций. Следует учесть, что до сих пор осталось ограничение на размер ключа со всеми его параметрами и значениями в 64 килобайта для совместимости с INI-файлами программ, написанных для MS Windows 3.1, и это накладывает дополнительные ограничения на и без того бедную возможностями функциональность этой базы данных. Физически база данных располагается в нескольких файлах, которые служат корнями «кустов» древовидной базы реестра. В зависимости от версии операционной системы, файлы разнятся по расположению и именам. Основная структура соответствий файлов и корней реестра:
INF REGISTRY_KEY Расположение в WIN 95, 98 Расположение в WIN NT 4, 5 HKLM HKEY_LOCAL_MASHINE %WinDir%\SYSTEM.DAT %SystemRoot%\System32\config\SOFTWARE HKCU HKEY_CURRENT_USER %WinDir%\USER.DAT %USERPROFILE%\ntuser.dat HKCR HKEY_CLASSES_ROOT %WinDir%\SYSTEM.DAT %SystemRoot%\System32\config\SOFTWARE HKU HKEY_USERS HKEY_USERS\.default %WinDir%\SYSTEM.DAT %SystemRoot%\System32\config\default HKEY_LOCAL_MASHINE\SYSTEM %WinDir%\SYSTEM.DAT %SystemRoot%\System32\config\SYSTEM HKEY_LOCAL_MASHINE\SYSTEM\ControlSet002 отсутствует %SystemRoot%\System32\config\SYSTEM.ALT
Формат записи в реестр в строке дочерней секции, вызываемой из параметра AddReg выполняемой секции таков:
Типы параметров реестра
Этот параметр обычно имеет тип REG_SZ, но это допустимо изменять.
В строковый параметр типа REG_ADVANCED_SZ Вы можете записывать системные переменные, которые будут подменяться текущими значениями при обращениях к ним программ. Большинство программ не различает параметры REG_SZ и REG_ADVANCED_SZ. К примеру, если Вы укажете в параметре типа REG_ADVANCED_SZ переменную %USERPROFILE%, любая программа посчитает этот параметр как параметр типа REG_SZ, содержащий реальный путь к каталогу профиля текущего пользователя, например C:\Winnt\Profiles\Administrator.
Мультистроковый параметр типа REG_MULTI_SZ позволяет добавлять каждый раз по одной строке данных. Это применяется, например, в формировании заданий по замещению или удалению после перезагрузки файлов, использующихся системой на данный момент. Для того, чтобы записать значение параметра этого типа после внесения всех строк, нужно добавить ещё раз этот параметр, указав закрывающий тип 8.Ниже приведён пример INF-скрипта, добавляющего в реестр параметры всех типов:
[Version]
Signature=»$CHICAGO$»
SetupClass=BASE
[DefaultInstall]
AddReg=adr.types
[adr.types]
HKLM,»%Key%»,»Binary»,1,72,00,00,00
HKLM,»%Key%»,»DWORD»,0x10001,64
HKLM,»%Key%»,»REG_SZ»,,»string only»
HKLM,»%Key%». «This is value of default parameter»
HKLM,»%Key%»,»REG_EXPAND_SZ»,0x00020000,»Current user name: %USERNAME%»
HKLM,»%Key%»,»REG_MULTI_SZ»,0x00010000,»first string»
HKLM,»%Key%»,»REG_MULTI_SZ»,0x00000008,»second string»
HKLM,»%Key%»,»»,,»»
HKLM,»%Key%»,»»,,»»
HKLM,»%Key%»,»»,,»»
HKLM,»%path%»,»DWORD2″,65537,1 HKLM,»%path%»,»REG_SZ2″,FLG_ADDREG_TYPE_EXPAND_SZ,»string only» HKLM,»%path%»,,2,»this is default value» HKLM,»%path%»,»advanced»,,»this is test value» HKLM,»%path%»,»REG_MULTI_SZ»,0x00010000,»one string»
[strings]
Key=»Software\Company_Name\Program_Name»
Удаление файлов при следующей перезагрузке
Переименование объектов и смена атрибутов
Параметр RenFiles содержит имена секций, которые в свою очередь содержат имена файлов, предназначенных для переименования. Папка, где будет происходить переименование должна быть определена в секции [DestinationDirs]. Требования к названию секций копирования файлов: Имя секции не должно содержать зарезервированных слов, таких как RenFiles, CopyFiles и т.д.
Ниже приведен пример дочерней секции переименования файлов:
Создание точки отката реестра (AdvancedINF)
Работа с INI-файлами
Создание и удаление строк в INI-файле
Inf-скрипты предоставляют конечному пользователю возможность редактирования INI-файлов.
Для того, чтобы изменить строки в существующем INI-файле необходимо в выполняемой секции указать параметр:
Параметр UpdateInis может содержать несколько имен дочерних секций.
Числовое значение Описание 0 Значение по умолчанию. При установке этого флага скрипт ищет ключ (имя записи) old-entry, не обращая внимания на его значение Если такая запись находится, соответствующая строка заменяется значением new-entry. Если old-entry отсутствует, скрипт автоматически добавит в секцию значение new-entry. Если будет отсутствовать new-entry, то old-entry удалится. 1 Скрипт выполняет проверку в INI-файле по ключу и значению записи old-entry. Обновление строки произойдет только в том случае, если и ключ и значение записи INI-файле совпадут с записью в old-entry 2 Скрипт выполняет проверку в INI-файле строк, ключ которых совпадает с описанным в old-entry. Если такая запись в INI-файле присутствует, она не будет замещаться значением, указанным в new-entry 3 Скрипт выполняет проверку в INI-файле строк, ключ и значение которых совпадает с описанным в old-entry. Если такая запись в INI-файле присутствует, она будет замещаться значением, указанным в new-entry
Создание и удаление пользовательских ярлыков с помощью INI-файлов
С помощью параметра UpdateInis в выполняемой секции можно создавать пользовательские ярлыки в меню ПУСК. Синтаксис секции будет выглядеть следующим образом:
[INI.Shortcut]
setup.ini,progman.groups,,»groupX=»»%GROUPNAME%«»»
setup.ini,groupX,,»«»PROGNAME»»,»»path»». «»workdir»»,»»DESCRIPTION»»«
Следует обратить внимание на расстановку запятых и кавычек. В данном случае, все переменные заключаются в двойные кавычки. Обязательные знаки в приведенном примере выделены жирным шрифтом.
Ниже приведен пример создания и удаления ярлыка в меню ПУСК к редактору реестра:
[Strings]
APPNAME=»Системные утилиты»
DescName=»Редактор реестра»
Description=»Запуск редактора реестра»
Создание и удаление пользовательских ярлыков с помощью параметра ProfileItems
Параметр ProfileItems используется в выполняемых секциях и предназначен для добавления ярлыков в меню ПУСК-Все программы.
Значением данного параметра может служить одна или несколько дочерних секций. Ниже приведен список возможных параметров дочерней секции ProfileItems:
[profile-items-section]
Name=NameItem[,Flag]
CmdLine=Path
WorkingDir=workdir
[SubDir=GROUPNAME]
[IconPath=PathIcon]
[IconIndex=IndexValue]
[HotKey=HotkeyValue]
[Infotip=DESCRIPTION]
Числовое значение Описание 0x00000001 Указывает программе установки создать или удалить ярлык для текущего пользователя. При отсутствии данного флага действия над ярлыками будут происходить для всех учетных записей. 0х00000002 Указывает программе установки удалить ярлык. При отсутствии данного параметра ярлык будет создан. 0х00000004 Указывает программе установки создать или удалить програмную группу. Если параметр не указан, программа установки выполняет операции только над ярлыками. Не над группами.
Разное
Диалоговые окна (AdvancedINF)
Вывод диалоговых окон в процессе выполнения скрипта возможен лишь с применением интерпретатора AdvancedINF. Диалоговые окна возможны двух типов: 1. С двумя кнопками (ОК, Отмена), произвольной строкой и заголовком; 2. С одной кнопкой ОК, произвольной строкой и заголовком. Первый тип вызывается параметром BeginPrompt в выполняемой секции и диалог отображается перед выполнением пакетных процедур установки, но после проверок CheckAdminRights (NTAdmin), RequiredEngine. Второй диалог отображается по завершении процедур при условии, что во время выполнения скрипта не произошло ошибок и вызывается параметром EndPrompt в выполняемой секции. Диалоги не зависят друг от друга, другими словами, их указание в выполняемой секции не зависит друг от друга. Если в начальном диалоге пользователь выбрал Отмену, дальнейшая обработка скрипта отменяется.
[DefaultInstall]
BeginPrompt=prmt.begin
EndPrompt=prmt.end[prmt.begin]
Prompt=»Текст предустановочного диалога»
ButtonType=YESNO
Title=»Заголовок окна»[prmt.end]
Prompt=»Текст послеустановочного диалога»
Title=»Заголовок окна»
. установка пакета.
Значения параметров Prompt и Title в дочерних секциях принято заключать в кавычки, но необязательно. В их теле допустимо использовать переменные из секции [string], но нельзя использовать переменные директорий. Применение параметра ButtonType в дочерней секции параметра BeginPrompt не приносит никаких изменений и, скорее всего, является отладочным или нереализованным параметром, и, поэтому, необязательно.
Деинсталляция приложения
При создании корректного инсталляционного пакета приходится задумываться о его деинсталляции, удаления из системы. Обычно в системе существует стандартная утилита удаления установленных программ, находящаяся в панели управления. Для того, чтобы зарегистрировать в её списке своё приложение, необходимо добавить в реестр новый ключ с необходимыми параметрами, а также создать функцию удаления пакета из системы. Логично будет создать в INF-скрипте новую выполняемую секцию, выполняющую это действие и скопировать при инсталляции сам скрипт в систему. Место размещения ключа деинсталляции программы Program_Name в реестре: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\Program_Name Ниже представлено описание параметров типового ключа удаления программы:
Поддерживается MS Windows 95, 98, NT и выше
| Название | Тип строки | INF-cтрока записи в реестр* | Описание |
| DisplayName | REG_SZ | HKLM,»%Key%»,»DisplayName»,,»Program_Name» | Имя программы, отображаемое в утилите деинсталляции |
| UninstallString | REG_SZ | HKLM,»%Key%»,»UninstallString»,,»rundll32.exe advpack,LaunchINFSectionEx C:\Windows\Inf\program.inf,Uninstall,,64,A» | Строка, выполняемая при деинсталляции пакета |
| DsiplayIcon | REG_SZ | HKLM,»%Key%»,»DsiplayIcon»,,»C:\program.exe,0″ | Отображение ICO-пиктограммы, указывается путь к файлу с пиктограммой и её номер в списке существующих, начинащемся с нуля |
Поддерживается MS Windows 2000 и выше:
| Название | Тип строки | INF-cтрока записи в реестр | Описание |
| DisplayVersion | REG_SZ | HKLM,»%Key%»,»DisplayVersion»,,»10.241.8.44″ | Версия программы |
| HelpLink | REG_SZ | HKLM,»%Key%»,»HelpLink»,,»http://company.com/support.php» | URL технической поддержки программы |
| ModifyPath | REG_SZ | HKLM,»%Key%»,»ModifyPath»,,»rundll32.exe params» | Команда, выполняемая при нажатии кнопки «Заменить» |
| EstimatedSize | REG_DWORD | HKLM,»%Key%»,»EstimatedSize»,0x10001,»1024″ | Размер установленной программы в Кбайтах |
| NoRemove | REG_DWORD | HKLM,»%Key%»,»NoRemove»,0x10001,»0″ | Флаги блокировки удаления, обновления или восстановления установленной программы. Полезно для разного рода хотфиксов и апдейтов. |
| NoModify | REG_DWORD | HKLM,»%Key%»,»NoModify»,0x10001,»0″ | |
| NoRepair | REG_DWORD | HKLM,»%Key%»,»NoRepair»,0x10001,»0″ |
[strings]
Key=»Software\Microsoft\Windows\CurrentVersion\Uninstall\Program_Name»
Кроме того, существуют дополнительные малозначимые ключи, в основном для формирования окна справки о программе, увидеть примеры которых можно, исследовав существующие ключи деинсталляции программ в реестре. Кроме того, для корректной деинсталляции Microsoft реализовала технологию точек отката реестра: «Создание точки отката реестра (AdvancedINF)». Остаётся добавить в файл скрипта новую выполняемую секцию Uninstall, добавить к инсталляционной секции задание на запись ключа деинсталляции и скопировать свой INF скрипт (setup.inf) в систему во время инсталляции программы:
[Version]
Signature=»$CHICAGO$»
AdvancedINF=2.0, «Error message»
[DefaultInstall.NT]
CopyFiles=cpf.inf
AddReg=adr.uninstall
[cpf.inf]
program.inf,setup.inf
[DestinationDirs]
cpf.inf = 17
[SourceDisksFiles]
setup.inf = 1
[SourceDisksNames]
1 = «Drive of program_name»,»»,0,
[adr.uninstall]
HKLM,»%Key%»,»DisplayName»,,»Program_Name»
HKLM,»%Key%»,»UninstallString»,,»rundll32.exe advpack,LaunchINFSectionEx %17%\program.inf,Uninstall,,64,A»
HKLM,»%Key%»,»DsiplayIcon»,,»C:\program.exe,0″
HKLM,»%Key%»,»DisplayVersion»,,»10.241.8.44″
HKLM,»%Key%»,»EstimatedSize»,0x10001,»1024″
[Uninstall]
DelFiles=cpf.inf
DelReg=dlr.uninstall
[dlr.uninstall]
HKLM,»%Key%»
[strings]
Key=»Software\Microsoft\Windows\CurrentVersion\Uninstall\Program_Name»
После выполнения подобного скрипта в утилите деинсталляции появится вот такой пункт:
Другие точки входа в библиотеки интерпретаторов
Секция strings (Объявление строчных переменных)
Для уменьшения объёма файла INF-скрипта и для облегчения языковой локализации пакетов рекомендуется употреблять переменные, определение которых находится в отдельной секции. Имя секции [strings]. Оно встречается почти в каждом INF-файле с завидным постоянством и его использование считается правилом хорошего тона в написании INF-скриптов. В теле скрипта переменные обозначаются знаками процента (%) по краям, как и переменные директорий. Пример использования секции переменных:
[strings]
regpath=»Software\Firm_name\Program_name\Options»
message1=»Произвольное сообщение»
По традиции секция strings располагается ниже всех остальных секций, являясь завершающей.
Места, где запрещается употребление переменных: в именах любых функций, вместо названий параметров и вместо управляющих знаков ;=[],. Под раздел переменных, которые можно использовать в INF-скриптах не попадают никакие другие переменные, кроме тех, которые определены непосредственно в этом файле скрипта и переменных директорий, часть которых можно определить динамично. В значениях переменных нельзя использовать никакие другие переменные, включая переменные путей.
Регистрация и отмена регистрации библиотек (AdvpackINF)
Полный путь к файлу библиотеки необходим в случае, если библиотека находится не в системном каталоге Windows. Также, при запуске без ключей, лишь с указанием библиотеки, regsvr32 по умолчанию пытается зарегистрировать библиотеку. Чтобы запустить регистрацию библиотеки из скрипта, обратитесь к разделу «Последовательное выполнение списка команд (AdvancedINF)»
Интерпретатор AdvancedINF умеет самостоятельно выполнять регистрацию и отмену регистрации библиотек, используя параметры RegisterOCXs и UnregisterOCXs в выполняемой секции. Пример:
[DefaultInstall]
RegisterOCXs=rocx.section
UnregisterOCXs=uocx.section
[rocx.section]
filename.dll
[uocx.section]
filename2.dll
Добавление приложения в пользовательскую и общую автозагрузку при входе в систему
Также для смены ассоциации файла можно воспользоваться редактором реестра.
Действие по умолчанию: Открыть
Синтаксис *.REG файла:
Синтаксис *.INF файла:
Действие по умолчанию: Установить
Синтаксис *.REG файла:
Синтаксис *.INF файла:
Ниже секции статьи, которые автор не дописал.
- Листья помидор закручиваются вверх лодочкой что делать
- к чему снится целоваться во сне с незнакомым мужчиной










