Работа с Реестром ОС WindowsNT/2000/XP, страница 4

Создать REG-файл совсем не сложно. В начале первой строки необходимо разместить ключевое слово REGEDIT4. Далее на отдельной строке следует поместить название ключа, заключенное в квадратные скобки. После названия ключа следует перечислить пары имя/значение (значению ключа по умолчанию соответствует специальное имя «@»). Все имена и все значения должны быть заключены в кавычки. Один файл может содержать информацию о значениях нескольких ключей. Пример REG-файла приведен в листинге 0

Листинг 0. Пример REG-файла

REGEDIT4

[HKEY CLASSES RQOT\aspfile]

"EditFlags"=hix:00,00,01,00

@="Active Server Document"

[HKEY CLASSES ROOT\aspfile\CLSID]

@="{bd70c020-2d24-lldO-9110-Q004c7S27S2}"

[HKEY_CLASSES_ROOT\aspfile\shell]

[HKEY CLASSES ROOT\aspf1le\shell\edit]

@="Edit"

[HKEY CLASSES ROOT\aspf1le\shell\edit\command]

@="E:\\Program Files\\M1crosoft FrontPage\\bin\\fpeditor,e XE \"%1\""

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

Еще одна проблема связана с обратными косыми. Символ обратной наклонной черты (\) указывает на то, что следующий символ является специальным. В частности, в рассмотренном примере символ обратной косой отмечает места, в которых символы кавычек должны обрабатываться REGEDIT именно как символы кавычек, а не как символы, ограничивающие имя или значение. Другими словами, если вы намерены включить в состав имени или значения символ кавычки, вы должны использовать комбинацию символов «\'. Чтобы обозначить символ обратной косой, следует использовать комбинацию символов «\\», то есть двойную обратную наклонную черту. Если этого не сделать, REGEDIT просто проигнорирует всю строку. При этом на экране не будет отображаться какая-либо информация об ошибке. Возможно, в более поздних версиях REGEDIT эта ошибка будет исправлена, и тогда REGEDIT будет сообщать вам о возможной неточности при использовании символа обратной косой, однако рассчитывать на это не стоит. Не забывайте дублировать символ обратной косой в REG-файлах.

Получив REG-файл, вы можете импортировать его в реестр при помощи программы REGEDIT. Наиболее примитивный способ — использовать соответствующий пункт меню программы REGEDIT. Если вы хотите автоматизировать процесс, можно запустить программу REGEDIT и указать в ее командной строке имя REG-файла. Информация из REG-файла будет добавлена в реестр автоматически. Этот метод можно использовать для редактирования реестра из командного файла, файла-сценария или из программы. При обработке REG-файла таким образом программа REGEDIT отобразит на экране окно диалога с сообщением о том, что информация успешно добавлена в реестр. Чтобы отменить вывод на экран этого окна, необходимо добавить в командную строку REGEDIT ключ /S,

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

INF-файлы

По своей структуре INF-файлы напоминают устаревшие INI-файлы. Так же как и INI-файл, INF-файл состоит из разделов, ограниченных квадратными скобками. Файл начинается с ключевого слова $CHICAGO$, Раздел Defaultlnstall содержит инструкции системному механизму установки программного обеспечения. В этот раздел можно включить множество разнообразных инструкций, однако с реестром связаны только две из них; AddReg и Del Reg. Эти команды указывают на разделы INF-файла, определенные пользователем, в которых располагаются ключи, которые следует добавить в реестр или удалить из реестра. Вместо того чтобы указывать полное имя ключа, формат INF разрешает использовать сокращение HKCR вместо HKEY CLASSES ROOT, HKCU вместо HKEY CURRENT USER, HKLM вместо HKEY_LOCAL_MACHINE и HKU вместо HKEYJJSERS.