C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 27 - INF файлы Windows / MSDN rus / Visual C++

Шаг 27 - INF файлы Windows

Операционная система Windows использует файлы с расширением INF. Это обычный текстовый файл очень похожий по структуре на INI файлы. В Windows он применяется для разных целей:

  • Автоматизация инсталяции Windows
  • Информация для инсталляции оборудования
  • Информация для инсталляции программ

Для программистов конечно важное место занимают последние два варианта применения. Если Вы пишите драйвер для устройства Windows, то для его установки вам нужен этот файл. Вы, наверно, часто сталкивались с поиском этого файла при установке оборудования. На каждой инсталляционной дискете для драйверов монитора, сетевых карт и так далее присутствует этот файл. Можно запустить этот файл из проводника через всплывающее меню действием "установить" :-)

Второе его применение - возможность создания программ быстрой установки. Для установки программного обеспечения есть большое количество программ типа Setup Wizard. Но все они дописывают около 100 КБ или больше своего кода. Что делать, если это больше чем Ваша утилита вообще, или если Вы предпологаете распространять Вашу программу по интернету ? Вобщем используя INF файл у Вас есть возможность создать самому маленькую утилиту инсталляции. При этом сохранив функциональность и создав рабочую группу или запись в реестре для необходимости. Вот пример, как создается группа.

[DefaultInstall]
.......
UpdateInis  = Test.Inis
........

[Test.Inis]
setup.ini, progman.groups,, "group321=Test"

В INF файле можно описать практически все необходимое для инсталляции программы. При этом не надо знать функции API, например, для записи данных в реестр. Вот например как это делается в INF

[DefaultInstall]
......
AddReg = Test.Add.Reg

......

[Test.Add.Reg]
HKLM,%URJ1%,DisplayName,"%Test_Desc%"
......

[Strings]
......
URJ1 = "Software\Microsoft\Windows\CurrentVersion"
APPS_DESC       = "Accessories"
Test_Desc    = "Test App"
......

Но программа инсталляции все равно нужна. Правда в данном варианте она коротенькая совсем. Естественно она должна называться типа Setup.exe для красоты. Основное это то, что ваша программа инсталляции должна вызывать ShellExecuteEx и ей нужно передать местонахождение Вашего INF файла. При этом нужно дождаться окончания процесса его выполнения, тут поможет WaitForSingleObject.

Описание INF файла требует отдельного разговора, а вот идея его организации такова. Очень часто параметр ссылается на раздел, в котором другие параметры и тем самым моделируется дерево.

[DefaultInstall]
......
AddReg = Test.Add.Reg--------
			    |	
......			    |	
			    |	
[Test.Add.Reg] <-------------

Кроме того в разделе Strings можно создать константы, которые в последствии использовать в параметрах (%имя_константы%)

[Strings]
APPS_DESC       = "Accessories"

Да, если Вы опишите нестандартный раздел или ошибетесь, то он просто игнорируется. Это говорит о том, что для генерации INF файла надо бы использовать или самому написать утилиту :-) Правила INF файлов таковы:

  • Имена разделов заключены в квадратные скобки - [ ]
  • Имена записей могут быть не уникальны, но порядок их размещения играет роль
  • Нестандартные разделы игнорируются

| |
Автор Каев Артем.
[AD]