Стоит отметить еще такую интересную деталь: при следующем запуске редактора реестра он всегда открывается на том разделе, работа с которым происходила в последний раз.
Практическое занятие
Давайте занесем в Избранное созданный нами раздел Test . Выделите его в редакторе реестра и выберите меню Избранное ► Добавить в избранное... Откроется диалоговое окно Добавление в папку „Избранное“ (рис. 1.18). При желании можно изменить имя по умолчанию для сохранения и щелкнуть на кнопке ОК , чтобы подтвердить наше действие. Теперь щелкните на любом другом разделе и закройте редактор. Откройте редактор реестра снова. В меню Избранное найдите строку Test (или строку с тем именем, под которым раздел был сохранен) и щелкните на ней. Вы сразу перейдете в нужный раздел.
Рис. 1.18. Сохранение раздела в папке Избранное
REG-файл
Можно вносить изменения в реестр путем внесения новых значений для нужных параметров в самом редакторе реестра или при помощи импорта. Но есть и другой способ. Можно заранее подготовить файл в заданном формате, и нужные параметры автоматически установятся в реестре. Для этих целей используются текстовые файлы с расширением REG.
Формат REG-файла
Вот как выглядит пример REG-файла, который позволит создать тот же раздел с параметрами, которые вводились на предыдущих практических занятиях.
Windows Registry Editor Version 5.00Устанавливаем новые параметры для раздела Test
[HKEY_CURRENT_USER\Software\Test]
«CatName»="Рыжик"
«CatAge»=dword:00000008
Синтаксис REG-файлов
Рассмотрим формат REG -файлов. Сначала идет заголовок файла
Windows Registry Editor Version 5.00
Нужно заметить, что в более ранних операционных системах, Windows 98 и Windows NT 4.0, использовался заголовок REGEDIT4 . Если у вас сохранились подобные старые файлы, то не пугайтесь. Windows 7 поймет этот файл и корректно обработает информацию. А вот обратный процесс будет недоступен – Windows 98 не сможет распознать новый заголовок и выдаст ошибку. Одна немаловажная деталь – после заголовка обязательно идет пустая строка.
Если вам нужно включить в документ комментарий, чтобы не забыть о назначении параметра, то поставьте вначале символ «;» (точка с запятой). При экспорте раздела Test из прошлого примера никаких комментариев не добавляется. Я это сделал уже после создания REG-файла. Комментарий служит для удобства самого пользователя и в реестр не вносится.
Устанавливаем новые параметры для раздела Test
Далее указывается раздел реестра, который заключается в квадратные скобки. Обратите внимание, что если указанный в файле раздел в реестре не существует, то он будет создан:
[HKEY_CURRENT_USER\Software\Test]
И наконец, последний штрих – вы указываете параметр реестра и его значение:
«CatName»="Рыжик"
В REG-файле может содержаться несколько разделов и параметров реестра, которые пишутся с новой строки, но заголовок используется только один в самом начале. В конце каждого файла также должна присутствовать пустая строка. Как видите, формат REG-файлов совсем не сложен и их можно создавать самостоятельно, не прибегая к помощи других программ.
ПРИМЕЧАНИЕ
Я обратил внимание, что при создании REG-файла при помощи редактора реестра в конец файла вставляются две пустые строки. Я не нашел информации на данный счет в документации, но на всякий случай также добавляю две пустые строки при ручном создании файла. Для экономии бумаги в книге эти строки не отображаются.
Создание REG-файла
Писать REG-файл можно в любом текстовом редакторе, например в Блокноте. Создайте новый текстовый документ, наберите приведенный выше код (рис. 1.19) и сохраните файл с расширением REG.
Если вы хотите потренироваться в создании подобных файлов, то проще сгенерировать их при помощи экспорта из редактора реестра, а затем внести изменения в Блокноте.
Рис. 1.19. Редактирование текста файла в текстовом редакторе
Внесение изменений в реестр при помощи REG-файла Выше мы уже рассматривали поведение системы при выполнении двойного щелчка по файлу с расширением .REG. При двойном щелчке на REG-файле у вас запускается редактор реестра, которому передается в качестве параметра имя файла.
ВНИМАНИЕ
Перед импортом в реестр REG-файла обязательно сделайте резервную копию реестра или точку восстановления системы!
Данный способ не очень удобен для автоматизации задач. Например, мы хотим создать сценарий автоматической установки системы с использованием REG-файлов. Если таких файлов будет слишком много, то пользователю постоянно придется нажимать кнопку OK , что, согласитесь, не доставит ему удовольствия. Можно подавить появ ление диалогового окна, запустив команду с параметром /S:
REGEDIT /S D:\test.reg
Именно этот способ используется программистами и системными администраторами при создании своих программ и сценариев, использующих REG-файлы. Правда, служба контроля учетных записей Windows выведет запрос о разрешении операции, но службу контроля можно отключить на время подобных действий, и тогда пользователь ничего не увидит.
C помощью REG-файла также можно удалять разделы. Для этого необходимо поставить знак минуса перед названием раздела. Откроем в Блокноте наш файл cat.reg и внесем следующие изменения:
Windows Registry Editor Version 5.00ставим минус для удаления раздела
[-HKEY_CURRENT_USER\Software\Test]
Теперь нужно дважды щелкнуть на REG-файле, чтобы запустить его и импортировать записи в реестр. Проверьте в редакторе реестра, что заданный раздел был удален.
ВНИМАНИЕ
Обратите внимание, что удалять можно только те разделы, которые не содержат в себе подразделов. В противном случае необходимо последовательно удалить все входящие в его состав подразделы и только потом приступать к удалению нужного раздела.
Также можно удалить параметр. Для этого следует поставить знак минуса (–) после знака равенства (=):
Windows-Registry-Editor-Version-5.00Удаляем параметр из раздела Test
[HKEY_CURRENT_USER\Software\Test]
«CatName»="Рыжик"
«CatAge»=-
Снова проверьте, что такие изменения работают и параметр CatAge был удален.
Утилита командной строки REG.EXE
Кроме редактора реестра, имеющего графический интерфейс, в составе Windows 7 имеется также утилита командной строки REG.EXE, предназначенная для опытных пользователей. С ее помощью можно создавать различные сценарии для выполнения различных задач, связанных с экспортом и импортом разделов реестра.
Экспорт параметров (команда EXPORT)
Для экспорта параметров реестра с помощью командной строки используется команда REG EXPORT , обладающая следующим синтаксисом:
REG EXPORT <имя_раздела><имя_файла> [/y]
Параметры
►<имя_раздела>– полный путь к разделу реестра в виде: КОРЕНЬ\Подраздел (только для локального компьютера). В качестве корня используются значения HKLM-|-HKCU-|-HKCR-|-HKU-|-HKCC . В качестве подраздела используется полный путь к разделу реестра в выбранном корневом разделе.
►<имя_файла>– имя файла на диске, в котором будут записаны экспортированные записи.
► /y – необязательный параметр. С его помощью можно выводить окно с предупреждением о том, что на диске уже существует файл с таким же именем.
Практическое занятие
Попробуем экспортировать раздел Test , созданный на предыдущих занятиях, при помощи командной строки. Запустите интерпретатор командной строки (cmd.exe). Введите в командной строке следующую строчку (предполагается, что у вас еще нет файла cat.reg на диске D: ):
reg export HKCU\Software\Test-d:\cat.reg
В успешном случае на экране появится строчка Операция успешно завершена (рис.1.20). Откройте диск и убедитесь, что данный файл существует (естественно, вы можете самостоятельно выбрать диск и имя файла для данного примера).
Рис. 1.20. Экспорт настроек реестра при помощи командной строки
Добавление параметров (команда ADD)
При помощи команды REG ADD можно добавить параметры в реестр. Таким образом, можно включить команды для добавления параметров в состав сценария, не прибегая к помощи REG-файлов. Синтаксис команды достаточно прост:
REG ADD <имя_раздела> [/v <имя_параметра> | /ve] [/t <тип>] [/s <разделитель>] [/d <данные>] [/f]
Параметры
► имя_раздела-[\\<компьютер>\]<раздел>.
<компьютер>– имя удаленного компьютера. Если оно опущено, то по умолчанию используется локальный компьютер. На удаленном компьютере доступны только корневые разделы HKLM и HKU .
<раздел> – КОРЕНЬ\<подраздел>. В качестве корня используется одно из значений: HKLM | HKCU | HKCR | HKU | HKCC . В качестве подраздела используется полное имя подраздела реестра в указанном корневом разделе.
► /v – имя параметра, добавляемого в выбранный раздел.
► /ve – добавление параметра с пустым именем (по умолчанию) в этот раздел.
► /t – тип данных. Может использоваться одно из следующих значений: REG_SZ | REG_MULTI_SZ | REG_EXPAND_SZ | REG_DWORD | REG_QWORD | REG_BINARY | REG_NONE . Если не указывается, то по умолчанию используется