Тарифы Услуги Сим-карты

Ошибка не удалось найти inf файл. Что такое.inf и как его исправить

Не такая уж частая ситуация, но при обслуживании большого парка пользовательских компьютеров иногда случается такое, что для какого-то устройства производитель не выпустил драйверы под нужную версию OS. Это может быть старая версия OS, или старое устройство. В общем. иногда требуется установить драйверы вручную. Поставляются они обычно в виде нескольких файлов. Чаще всего они имеют расширение inf или sys, но могут быть и другими.

Процедура установки драйвера в ОС Windows 10 зависит от того, каким именно способом вы его устанавливаете. Каждый способ имеет свои плюсы и минусы. Самый главный плюс в том, что любой пользователь, от новичка до мастера, может выбрать для себя самый удобный, избежав системных ошибок и вылета программ в дальнейшем. Мы подробно рассмотрим каждый способ в отдельности. Помните, что самое важное – использовать драйвера из надёжных источников, чтобы не повредить операционную систему и случайным образом не запустить вирус, устранение которого займёт гораздо больше времени и сил, чем установка любого драйвера.

Что нужно для установки драйвера

Для того, чтобы установить драйвер вручную, нужен установочный диск или специальное программное обеспечение, которое поможет вам пошагово выполнить всю процедуру установки. Ниже мы рассмотрим одну из таких программ – Driver Easy. Бывают такие ситуации, когда по причине несовместимости драйвер с установочного диска выдаёт ошибку. Именно в таких случаях нам и нужны программы, которые помогут найти и обновить драйвер. К тому же этот вариант будет более приемлемым для владельцев нетбуков, в которых зачастую отсутствует дисковод. Для таких случаев есть вариант установки необходимого драйвера с USB-накопителя, его мы тоже сегодня разберём, так как этот метод имеет свои особенности.

Ручная установка — инструкция

Установка драйвера вручную при помощи диспетчера устройств

1. Откройте панель управления Windows 10, нажав одновременно клавишу Win + X (клавиша Windows и клавиша X) и кликните левой кнопкой мыши на пункт «Панель управления»

2. Для удобства желательно настроить маленькие значки.

3. Кликните на «Диспетчер устройств».

В окне диспетчера устройств разверните категории и найдите нужное вам устройство. Затем щелкните правой кнопкой мыши на имя устройства и выберите «Обновить программное обеспечение драйвера». На фото приведён пример установки драйвера сетевого адаптера Realtek PCIe GBE Family Controller.

Установка драйвера вручную при помощи программы Driver Easy

1. В главном окне программы Driver Easy нажмите на драйвер устройства, нуждающегося в обновлении. После этого вы увидите стандартное окно диспетчера задач, о котором было написано выше. Выберите устройство для обновления.

2. Во всплывающем окне вы увидите два варианта. Нажмите «Обзор моего компьютера» для установки программного обеспечения драйвера.

3. Нажмите «Обзор», чтобы найти загруженный файл драйвера.

Нажмите в Driver Easy кнопку Down Triangle, затем выберите Open File Location, чтобы открыть папку с драйвером.

Для удобства вы можете скопировать и вставить местоположение загруженных файлов в поле.

Путь к файлу:

Как вы уже поняли, обновление занимает немало времени и требует базовых знаний работы с персональным компьютером. Помимо обновления вручную, программа Driver Easy способна выполнять автоматический поиск, скачивание и установку всех драйверов, нуждающихся в обновлении. Но, как мы уже и говорили, это небезопасно, так как эта функция работает в автоматическом режиме, и в этом случае невозможно сделать резервную копию на случай серьёзного сбоя.

Установка драйвера с компакт-диска или DVD-диска

Почти все производители компьютеров и оборудования поставляют в комплекте набор драйверов для разных аппаратных устройств. Например, компакт-диск с драйверами, который идёт в комплекте с принтером, содержит драйверы для множества разных принтеров, а не только для того, который вы приобрели. При установке драйверов убедитесь, что вы устанавливаете драйверы для своей модели принтера, а не для другой. Кроме того, убедитесь, что вы устанавливаете его для той версии Windows, которая установлена на вашем компьютере. Процесс установки драйвера с компакт-диска ничем не отличается от стандартного процесса установки любой другой программы. Обязательно выполняйте все инструкции программы-установщика при первом запуске. В некоторых случаях нужно удалить старый драйвер перед установкой нового.

Если у вас есть компакт-диск с драйверами, но на компьютере нет дисковода или он не работает, вы также можете загрузить драйверы с USB-накопителя.

Установка драйверов с USB-накопителя

После копирования драйверов на USB-накопитель, вы сможете установить необходимое программное обеспечение на свой компьютер. Убедитесь, что накопитель подключен к компьютеру, откройте проводник Windows и найдите в нём имя вашего устройства. Например, если у вас есть USB-накопитель, которому при подключении назначен диск E:, то вам нужно кликнуть на значок с именем E: для того, чтобы открылось содержимое.

Как только драйверы будут обнаружены на диске, вы должны определить, каким именно образом они будут установлены на ваш компьютер. Если каталог содержит исполняемые файлы или файл установки (расширение *.exe), то вы можете установить драйвер с помощью этого файла. Если драйверы сжаты в ZIP-файл, вам необходимо распаковать файл при помощи таких архиваторов, как 7-Zip и WinZip.

Установка inf файла

Если приведенные выше рекомендации вам не помогли, то все инструкции по установке драйверов и аппаратных устройств всегда содержатся в файле с расширением.inf, который находится в папке C:Windowsinf. Папка с файлами сведений защищена и является скрытой. Чтобы она отобразилась, в настройках вида папки поставьте галочку «Скрытые элементы». Чтобы найти файл сведений нужного вам устройства, придерживайтесь следующей инструкции:

Откройте диспетчер устройств;

Кликните правой кнопкой мыши на выбранное устройство и выберите в меню «Свойства»

После этого перейдите на вкладку «Сведения». Раскройте список и выберите пункт «Имя INF». Название файла будет отображено в поле «Значение».

После того, как вы узнали имя файла, возвращайтесь в Диспетчер задач, выберите устройство, нажмите «Обновить драйвер» и укажите путь к файлу *.inf (в данном примере это будет C:Windowsinfoem3.inf)

INF-файлы (Setup Information Files) предназначены для создания сценариев инсталляций. Обычно INF-файлы используются для установки драйверов - устанавливать с их помощью приложения также допустимо, но неудобно.

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

Формат INF-файла

Формат INF-файла похож на формат INI-файла. В INF-файле, как и в INI-файле, есть разделы (или секции), а каждый раздел содержит элементы, обычно имеющие вид Имя=Значение.

Создать lNF-файл можно в любом текстовом редакторе - в частности, для этих целей идеально подходит Блокнот. Чтобы не создавать INF-файл каждый раз с чистого листа, вы можете создать шаблон, содержащий обязательные секции INF-файла.

Примечание

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

Простейший шаблон INF-файла

Signature=

; действия при удалении

; добавляем данные в реестр

; удаляем данные из реестра

Секция является обязательной. Изменять ее нельзя. Вторая секция обычно называется . Можно изменить имя этой секции, но лучше этого не делать. Директивы AddReg и DelReg задают имена секций, в которых находятся разделы и параметры, которые нужно добавить или удалить из реестра соответственно.

Директивы AddReg и DelReg могут располагаться как в секции

Так И В , Причем в одной и той же

секции может быть указано несколько директив AddReg и DelReg:

; Действия при установке файла

; действия при удалении

Для сокращения длины INF-файла можно в одной директиве AddReg или DelReg указать несколько секций (через запятую):

; Действия при установке файла

AddReg=Addl,Add2,Add3

; действия при удалении

DelReg=Dell,Del2,Del3

Примечание

Названия секций (в приведенном выше примере - , и т. д.) должны быть уникальными в пределах INF-файла.

Добавление новых разделов и параметра реестра

Теперь поговорим о том, как задаются разделы и параметры реестра в секциях INF-файла. Общий формат такой:

корневой раздел, [подраздел], [параметр], [флаги], [данные]

Корневой раздел нужно указывать в любом случае. Допускается использование сокращенных имен: HKCU, HKLM, HKCR, HKU, НКСС. Подраздел можно не указывать - в этом случае все действия будут относиться к корневому разделу. Если вы не указываете подраздел, не забудьте поставить запятую, относящуюся к подразделу: корневой раздел, [параметр], [флаги], [данные]

[Параметр] представляет собой имя добавляемого или изменяемого параметра реестра, который уже существует. Имя параметра указывать необязательно.
Если значение не указано, но указаны флаги и данные, то при выполнении операции будет использовано значение по умолчанию. Если не указаны параметр, флаги и данные, то это операция добавления раздела реестра.

С помощью флагов вы можете задать тип создаваемого параметра и определить дополнительные атрибуты операции добавления или изменения параметра.

Примечание

Флаги, выделенные курсивом, можно объединять с другими флагами с помощью битового OR (или). Эту операцию можно произвести в калькуляторе, переведенном в инженерный режим.

После флагов должно быть указано значение параметра. Если параметр не существует, то он будет создан, а если существует - перезаписан. Если параметр имеет тип REG_MULTI_SZ и установлен флаг 0x00010008 (REG_MULT1_SZ + 0x00000008), то список строк будет добавлен к уже существующему.

Если значение параметра не указано, то параметр будет создан без указания значения.

Рассмотрим несколько примеров:

; Создаем параметр Active типа REG_DWORD и присваиваем значение 1

HKCU,Software\Company\Program,Active, 0x10001,1

; Создаем параметр Str типа REG_SZ и присваиваем значение Test String

HKCU,Software\Company\Program,Str,Test String

; Устанавливаем значение по умолчанию

HKCU,Software\Company\Program. По умолчанию

Удаление разделов и параметров

Синтаксис описания разделов реестра такой же, как и в предыдущем случае: Корневой раздел, [подраздел], [параметр], [флаги], [значение]
Корневой раздел - это основной раздел, содержащий раздел реестра или параметр, который нужно удалить. Подраздел - это дочерний раздел, который нужно удалить, или же подраздел, содержащий параметр, который вы хотите удалить. Параметр - это имя параметра, который нужно удалить.

Флаг Операция

0x00002000
Удалить весь подраздел

0x00018002
Если параметр имеет тип REG_MULTI_SZ, то удаляются все строки, соответствующие строке, указанной в качестве значения

Значение (см. выше) используется, только если установлен флаг 0x00018002 и тип параметра равен REG_MULT1_SZ. В этом случае указанное значение будет удалено.

Signature=SCHICAGO$

; удаляем параметр Str из Software\Company\Program

HKCU,Software\Company\Program,Str

; удаляем строку Text из списка строк

HKCU, Software\Company\Program,StringList,0x00018002,Text

/удаляем весь раздел Software\Company\Program

HKCU, Software\Company\Program

Установка INF-файла

Для установки INF-файла нужно щелкнуть по нему правой кнопкой мыши и выбрать из контекстного меню команду Установить (рис. 21.1).

Использовать REG-файлы просто и удобно: вы можете создать все необходимые параметры в реестре, а затем экспортировать их в REG-файл. Преимущество заключается в том, что в REG-файлах исключены синтаксические ошибки - они создаются редактором реестра автоматически, без вашего вмешательства.

Windows Registry Editor Version 5.00 Str=Hello world! Counter=dword:00000000 Binary=hex:12,20

Название разделов реестра в REG-файле, так же как и секции в INF-файлах, записываются в квадратных скобках.

Строковые значения (REG_SZ) заключаются в кавычки; перед значениями типа REG_DWORD указывается ключевое слово dword:, а перед шестнадца-теричными значениями - hex.

Некоторые специальные символы, например, обратный слэш, цитируются с помощью обратной косой черты (\), например:

C:\\Windows\\system32

У REG-файлов есть один недостаток: REG-файл, сгенерированный для вашего реестра, может использоваться только для экспортированных в него ключей и параметров. А как с его помощью удалить разделы и параметры? Для этого вам придется писать REG-файл вручную.

Для удаления целого раздела реестра нужно перед именем раздела поставить знак -, например:

[-HKEY_CURRENT_USER\Software\Company\Program]

Если вы хотите удалить параметр, то минус нужно поставить перед его значением: имя=-значение

Вот пример REG-файла для удаления раздела HKEY_CURRENT_USER\ Software\Company\Program:

Windows Registry Editor Version 5.00 [-HKEY_CURRENT_USER\Software\Company\Program]

Напомню, что создать REG-файл можно в любом текстовом редакторе, например, в Блокноте. При создании REG-файла в Блокноте убедитесь, что файл сохранен с расширением.reg, а не.reg.txt, иначе система будет считать его обычным текстовым файлом.

Для применения REG-файла нужно дважды щелкнуть по его имени в окне Проводника, при этом система спросит вас, хотите ли вы применить REG-файл. Вам нужно согласиться.




Описание:

Добрый день! Понадобилось мне сегодня установить XP с флешки на старый ноут. Но возникло у меня две проблемы, которые я к счастью решил и сейчас поделюсь с вами полезной информацией, которую только что сам проверил.

Значит так ноутбук Asus, но не думаю что это очень важно, ошибки которые появились могут возникнуть и при установке Windows XP на обычный компьютер, одно условие, установка с флешки. Но если бы в нетбуке был привод CD/DVD дисков, то я бы не заморачивался с флешкой, а просто установил бы Windows XP с диска.Значит рассказываю сначала как я делал, что в итоге получилось и как решил.

Был у меня на компьютере образ с Windows XP, думаю сейчас быстренько создам загрузочную флешку программой UltraISO, подробнее об этом читайте в статье Создаем загрузочную флешку Windows 7 с помощью программы UltraISO . Так и сделал, взял флешку на 4 Гб, для XP этого хватит, и записал образ Windows XP с.iso файла.

Подключил флешку к ноутбуку, зашел в БИОС и выставил загрузку с флешки, о том как это сделать я писал в статье Как в БИОС настроить загрузку с флешки?. Сохранил результат, ноутбук перезагрузился, и я увидел первую ошибку: Невозможно продолжить установку. Нажмите любую клавишу для выхода.

Подробный процесс установки Windows XP описан в статье Как установить Windows XP.

Ошибка:

Зашел в интернет, быстро нашел информацию, что для решения этой ошибки, нужно файл «txtsetup.sif», из папки «I386″ положить в корень флешки которую мы создали. А папку «I386″, которая находится на флешке переименовать в «$WIN_NT$.~BT». Я так и сделал, но вы не делайте, это не поможет:), читайте дальше.

Сделал я все что написал выше и снова попробовал загрузится с флешки. Ошибка «inf-файл txtsetup.sif испорчен или отсутствует, состояние 18″ не появилась, но радовался я не долго. После процесса загрузки драйверов, появилась новая ошибка ««.

Ошибка: Не удалось найти устройство чтения компакт-дисков

Следующая ошибка выглядит вот так:

И тут я понял, что нужно переделывать флешку. Так и сделал и не ошибся.

Сделаю выводы, возможно забегая на перед:

Программа UltraISO не подходит для создания загрузочных флешек с Windows XP.

Создаем загрузочную флешку для установки Windows XP

Извлекаем ее из архива и запускаем WinToFlash.exe.

Подключите к компьютеру очищенную флешку на 1 Гб, можно и больше. Если у вас образ Windows XP в.iso, то из него нужно извлечь файлы в папку, можно программой WinRaR.

В программе WinToFlash, которую мы запустили, соглашаемся на все сообщения, пока не появится такая картинка:

Нажмите «Мастер переноса программы установки Windows на USB».

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

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

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

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

UpdateInis = Test.Inis ........ setup.ini, progman.groups, "group321=Test"

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

AddReg = Test.Add.Reg ...... HKLM,%URJ1%,DisplayName,"%Test_Desc%" ...... ...... URJ1 = "Software\Microsoft\Windows\CurrentVersion" APPS_DESC = "Accessories" Test_Desc = "Test App" ......

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

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

AddReg = Test.Add.Reg-------- | ...... | |

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

APPS_DESC = "Accessories"

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

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

INF-файлы

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

Как известно, для более-менее серьезного программного продукта обычно требуется специальная программа инсталляции, с помощью которой пользователь сможет легко установить и так же легко удалить сам продукт. Существует много инструментальных средств, позволяющих быстро создавать инсталляционные пакеты. Однако, большинство из них добавляют к исходному размеру программы 200–500 Кб. А ведь это далеко не всегда радует. Серьезный продукт не обязательно должен быть внушительных размеров. И если вы хотите сделать инсталляцию доступной в Сети, то эти 200–500 Кб могут сильно сказаться на популярности продукта.

Как выйти из подобной ситуации? Здесь на помощь придут inf-файлы. Именно с помощью inf-файлов можно удалять, копировать другие файлы, добавлять информацию в реестр, в ini-файлы, создавать ярлыки, в общем, все то же, что обеспечивают громоздкие программы установки.

Перейдем к изучению спецификации inf-файлов.

inf-файл представляет собой текстовый файл, который, содержит условия установки программного обеспечения.

Чтобы запустить inf-файл, нужно щелкнуть по нему правой кнопкой мыши и выбрать в открывшемся контекстном меню параметр Установить (Install) . Но для подготовки дистрибутива можно воспользоваться IExpress, который поддерживает запуск.inf-файлов. Вооружившись этой программой, а также знанием спецификации.inf-файлов, можно создавать профессиональные инсталляционные пакеты.

Основную информацию в.inf-файле содержат секции, представленные в Таблице 1 (более сложные.inf-файлы могут иметь дополнительные секции).

Секция обязательно должна включать строку Signature="$Chicago$"

Эта секция определяет стандартный заголовок для всех inf-файлов Microsoft Windows. Если сигнатура будет не $Chicago$, операционная система Windows не примет inf-файл как принадлежащий любому из классов устройств, признанных Windows.

При написании сигнатуры вы можете использовать как верхний, так и нижний регистры букв - $Chicago$ или $CHICAGO$.

Секция установки может содержать следующие параметры:

CopyFiles - копирование файлов;

RenFiles - переименование файлов;

DelFiles - удаление файлов;

UpdateInis - изменение данных в ini-файлах;

UpdateIniFields - изменение областей в.ini-файлах;

AddReg - добавление информации в реестр;

DelReg - удаление информации из реестра;

Ini2Reg - перемещение строки или секции в ini-файлах;

UpdateCfgSys - изменение файла Config.sys;

UpdateAutoBat - изменение файла Autoexec.bat.

Этим параметрам в качестве значения присваивается имя секции с файлами. Например:

CopyFiles=CopyHtml

Example.html ;файл для копирования...

;Секция расположения каталогов

DestExampleFiles=10 ;Каталог назначения (т.е. копировать в папку Windows)

Чуть ниже представлены цифровые обозначения специальных папок, применяемые в.inf-файлах:

10 - C:\WINDOWS;

11 - C:\WINDOWS\System;

12 - C:\WINDOWS\SYSTEM\IOSUBSYS;

13 - C:\WINDOWS\COMMAND;

17 - C:\WINDOWS\Inf;

18 - C:\WINDOWS\Hlp;

20 - C:\WINDOWS\FONTS;

21 - C:\WINDOWS\SYSTEM\VIEWERS;

22 - C:\WINDOWS\SYSTEM\VMM32;

23 - C:\WINDOWS\SYSTEM\COLOR;

30 - Корневой загрузочный диск (обычно C:\).

Например, если нужно скопировать файл в папку Web, которая находится в каталоге Windows, сделайте это так:

DestExampleFiles=10,WEB

Так же можно поступить и с другими папками, находящимися в определенных каталогах.

Параметр CopyFiles содержит имя секции, где находятся имена файлов для копирования с исходного диска в папку назначения. Папка назначения определяется в секции inf-файла. В следующем примере копируются два файла:

Signature=$Chicago$

Copyfiles=ExampleCopyFiles ;секция может быть названа как угодно

1="Имя диска","",1

;Перечисляете файлы, которые содержатся на диске

Example.exe=1

;Перечисляете файлы для копирования (о цифрах через три запятые читайте ниже)

;Указываете папку, в которую будут копироваться файлы (10 - Windows)

ExampleCopyFiles=10

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

Параметр CopyFiles может копировать файл непосредственно из строки. Для этого перед именем файла нужно поставить символ @. В следующем примере копируются два текстовых файла:

[email protected], @anotherfile.txt

Параметр RenFiles содержит секции, которые в свою очередь содержат имена файлов для переименования. Папка, где будет происходить переименование, должна быть определена в секции inf-файла. В следующий примере происходит переименование двух файлов из.bmp в.txt:

Signature=$Chicago$

RenFiles=ExampleRenameOldFiles

1="Имя диска","",1

;Перечисляете старые имена файлов

;Определяете файлы, которые будут переименовываться

Example1.txt, Example1.bmp

Example2.txt, Example2.bmp

;Указываете папку, в которой будут переименовываться файлы (10 - Windows)

ExampleRenameOldFiles=10

В параметре AddReg указываются секции, которые содержат информацию о добавлении или изменении ключей, значений в реестре. Следующий пример регистрирует вашу копию операционной системы Windows.

Signature=$Chicago$

AddReg=ExampleAddRegistry

;Определяете информацию, которая будет добавлена в реестр

HKLM, "SOFTWARE\Microsoft\Windows\CurrentVersion", "RegDone","1"

HKLM, "SOFTWARE\Microsoft\Windows\CurrentVersion\ Welcome\RegWiz","@","1"

С помощью этого файла в реестр добавляется следующая информация:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Welcome\RegWiz

Обратите внимание на запятые в inf-файле. Если нужно добавить в реестр параметр по умолчанию, запятые должны быть проставлены иначе. Например, в рассмотренном нами ключе реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion сделаем параметр по умолчанию равным единице (1):

HKLM, "SOFTWARE\Microsoft\Windows\CurrentVersion","1"

Ниже представлены корневые имена реестра, применяемые в inf-файлах.

HKCR - HKEY_CLASSES_ROOT;

HKCU - HKEY_CURRENT_USER;

HKLM - HKEY_LOCAL_MACHINE;

HKU - HKEY_USERS;

HKR - относительный ключ, используется классом installer ; обычно применяется для дисков устройства.

В параметре DelReg указываются секции, которые содержат информацию об удалении подключей с параметрами и значениями из реестра. Следующий пример демонстрирует удаление подключа Graphviz со всеми параметрами и значениями этого раздела реестра - HKEY_CURRENT_USER\Software\AT&T\Graphviz:

Signature=$Chicago$

DelReg=ExampleDelRegistry

;Определяете информацию, которая будет удалена из реестра

HKLM, "HKEY_CURRENT_USER\Software\AT&T\Graphviz"

Корневые имена реестра, естественно, обозначаются так же, как и при добавлении информации в реестр.

В процессе установки можно прервать выполнение.inf-файла для показа пользователю какого-нибудь документа (после закрытия которого установка продолжится) или запустить определенный процесс. Следующий пример отображает файл справки About.hlp и текстовый файл About.txt, после чего запускает другой inf-файл - Example.inf:

Signature=$Chicago$

AddReg=ExampleView

;Отображение файла справки About.hlp

HKLM,Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup,%ABOUT%,"WINHLP32.EXE - Main %1%\About.hlp"

;Отображение текстового файла About.txt

HKLM,Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup,%ABOUT%,"notepad %1%\About.txt"

;Запуск файла сценария Example.inf

HKLM,Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup,%ABOUT%,"rundll setupx.dll,InstallHinfSection DefaultInstall 132 %1%\Example.inf"

;Определяете название, которое будет отображаться в окне "Установка Windows 98"

ABOUT="О программе..."

После того как определенные в секции команды выполнятся, записи, добавленные в реестр, будут автоматически удалены из него. Таким образом можно запускать и другие процессы, например апплеты Панели управления :

;Запуск апплета Панели управления Свойства: Система (SYSDM.CPL)

HKLM,Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup,%ABOUT%,"rundll32

В следующем примере показано, как с помощью inf-файла изменить содержимое ini-файла:

Signature=$Chicago$

UpdateInis=ExampleAddINIfiles

;Указываете папку, где находится файл system.ini - например в папке Example, которая расположена в каталоге C:\Program Files

30,PROGRA~1\Example

ExampleAddINIfiles=30,PROGRA~1\Example

;Определяете название файла и секции добавляемых, удаляемых или заменяемых строк

;Добавляете в секцию файла system.ini строку shell=Example.exe

;Удаляете из секции файла system.ini строку shell=Example.exe

system.ini, boot, "shell=Example.exe"

;Заменяете из секции файла 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.

Signature=$Chicago$

UpdateInis=ExampleShortcut

;Определяете название и размещение ярлыков

setup.ini, group1, """Конфигурация IP"",""""""%30%\WINDOWS\winipcfg.exe"""""",""%30%\WINDOWS"",""winipcfg.exe"""

setup.ini, progman.groups, "group1=""Windows + +"""

setup.ini, group1, """Редактор реестра"",""""""%30%\WINDOWS\Regedit.exe"""""",""%30%\WINDOWS"",""Regedit.exe"""

setup.ini, progman.groups, "group1=""Windows + +"""

setup.ini, group1, """Диспетчер файлов"",""""""%30%\WINDOWS\Winfile.exe"""""",""%30%\WINDOWS"",""Winfile.exe"""

Ярлык прописывается в таком порядке:

1. Название группы программ. В нашем случае - Windows + +.

2. Имя ярлыка.

3. Путь к программе, к которой создается ярлык.

4. Рабочий каталог, обычно тот же, что и путь. Некоторые программы не работают, если это условие не выполняется.

5. Имя программы с расширением.

Параметр %30%\ определяет корневой диск. Если вы хотите создать ярлык к файлу, который находиться в каталоге Program Files, смело прописывайте полный путь (не используйте короткие имена), например %30%\Program Files\Setup Generator Pro\Sgpro.exe.

Для удаления ярлыка нужно убрать все записи, указанные после имени ярлыка. В следующем примере удаляется ярлык Конфигурация IP из программной группы Windows + + .

setup.ini, progman.groups, "group1=""Windows + +"""

setup.ini, group1, """Конфигурация IP"""

Если вы удаляете один из ярлыков программной группы, то удаление не затронет другие ярлыки. Для полного удаления программной группы нужно прописать данное действие для каждого ярлыка.

К сожалению, вы не сможете с помощью inf-файла обычным способом скопировать файлы с длинными именами. Поддержка длинных файловых имен в.inf-файлах немного усложнена, но главное, что она существует. Для этого нужно проделать следующее: исходный файл должен быть с коротким именем, после установки его имя нужно сделать подлиннее. Для удаления процесс повторяется в обратном порядке: длинное файловое имя делается коротким и удаляется уже файл с 8.3-именем. Происходит все это с помощью реестра. Для этих действий в реестре предусмотрены специальные ключи:

Следующий ключ используется для переименования файлов:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RenameFiles

Этот ключ используется для удаления файлов:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\DeleteFiles

Для действий переименования или удаления нужно добавить подключ с любым именем в соответствующую ветвь реестра. Минимум два ключа должны быть определены. Первый ключ содержит имя каталога, где будет происходить переименование или удаление файлов. Следующий ключ содержит имена файлов: первое - короткое, второе - длинное и его атрибуты, если нужно:

1 - Только для чтения;

2 - Скрытый;

3 - Системный.

Следующий пример демонстрирует переименование в каталоге C:\Files файла About.txt в About View files.txt и установление ему атрибута «Скрытый», а также переименование того же файла в подкаталоге Xmp папки C:\Files с установлением ему атрибута «Только для чтения»:

Signature=$Chicago$

HKLM,Software\Microsoft\Windows\CurrentVersion\RenameFiles \Example,"%30%\Files"

HKLM,Software\Microsoft\Windows\CurrentVersion\RenameFiles \Example,About.txt,"About View files.txt,2"

HKLM,Software\Microsoft\Windows\CurrentVersion\RenameFiles \SubDir,"%30%\Files\Xmp"

HKLM,Software\Microsoft\Windows\CurrentVersion\RenameFiles \SubDir,About.txt,"About View files.txt,1"

Ключи для удаления файлов имеют такую же структуру. Рассмотрим пример, который в каталоге C:\Files удаляет файл About View files.txt и такой же файл удаляет в подкаталоге Xmp папки C:\Files:

Signature=$Chicago$

HKLM,Software\Microsoft\Windows\CurrentVersion\DeleteFiles

\Example,"%30%\Files"

HKLM,Software\Microsoft\Windows\CurrentVersion\DeleteFiles \Example,About.txt,"About View files.txt"

HKLM,Software\Microsoft\Windows\CurrentVersion\DeleteFiles \SubDir,"%30%\Files\Xmp"

HKLM,Software\Microsoft\Windows\CurrentVersion\DeleteFiles \SubDir,About.txt,"About View files.txt"

Параметры Example и SubDir могут быть любыми, например названием вашей программы, подкаталога и т.д. Важно, чтобы они были разными, т.к. переименование/удаление происходит в разных каталогах.

Данная статья не претендует на полноту, но надеюсь, поможет читателю освоить inf-файлы хотя бы поверхностно. Не бойтесь экспериментировать, но будьте предельно осторожны, особенно с процессами удаления.