Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Лабораторная работа № 5
Исследование структуры реестра Windows 98/XP: базовые функции
Цель: изучить структуру ключей реестра, типы параметров ключей, способы редактирования реестра; получить практические навыки работы с редактором реестра RegEdit.
Теоретические сведения
Системный реестр база данных, которая сохраняет параметры настройки для 32 разрядных версий Microsoft Windows, включая Windows 95, 98 и NT. Он содержит информацию и параметры настройки для всех аппаратных средств, программ, пользователей, и свойств PC. Каждый раз, когда пользователь делает изменения в параметрах настройки Панели управления, или в ассоциациях файлов, системной настройке, или в установленном программном обеспечении, изменения отражаются и сохраняются в системном реестре.
Физические файлы, которые составляют системный реестр, различаются в зависимости от Вашей версии Windows. В Windows 95 и 98 он содержится в двух скрытых файлах каталога Windows, называемыми USER.DAT и SYSTEM.DAT. В Windows NT файлы содержатся в каталоге "Windows/System32/Config".
Редактор системного реестра (REGEDIT.EXE) включен в большинство версий Windows (хотя Вы не найдете его в меню "Пуск") он дает возможность просматривать, искать и редактировать данные в пределах системного реестра. Имеется несколько методов для запуска редактора, самый простой - нажать на кнопку "Пуск", затем выбрать Выполнить, и в поле Открыть: напечатать "regedit".
Обратите внимание: Всегда резервируйте Ваш системный реестр перед созданием любых изменений в нем. Это даст Вам возможность не переустанавливать операционную систему в случае неправильных действий. Гораздо лучше перестраховаться, чем потом жалеть!
Системный реестр имеет иерархическую структуру, которая подобна структуре каталогов на Вашем жестком диске, а Regedit подобен Проводнику Windows. Реестр содержит три типа объектов: ключи, параметры и значения.
Ключи - вершина иерархической структуры реестра. Под ключами реестра могут располагаться другие узлы иерархического дерева (подключи). Кроме этого, каждый ключ может содержать один или несколько параметров. Все ключи и параметры в пределах подключа должны иметь уникальные имена.
Параметры имеются у каждого ключа и подключа. У каждого ключа обязательно есть хотя бы один параметр -" По умолчанию". Если значения параметров не заданы, то они имеют значение Null.
Параметры состоят из трех частей: тип параметра, имя параметра и его значение. Допустимы следующие типы параметров: двоичные, двойное слово и строковые. Каждому типу параметров соответствует своя пиктограмма в окне редактора реестра.
String (строковое). Представляет из себя ASCIIZстроку (заканчивается символом с кодом 0). Имеет переменную длину, максимальный размер 64 кБ. Значение строки всегда заключается в кавычки.
Binary (двоичное). Максимальный размер 64 кБ. В окне редактора реестра представлено в виде 16-ричного значения.
DWORD (двойное слово). Представляет собой число размером 32 бита (в реестре 8-значное шестнадцатеричное число). Чтобы отличить этот тип данных от двоичного, перед численным значением DWORD всегда есть два символа: 0х.
Вся база системного реестра разделена на шесть основных разделов, которые принято называть ветвями. Каждая ветвь содержит в себе параметры, относящиеся к определенному набору ключей. Ниже кратко описано назначение этих разделов.
Каждый из вышеперечисленных разделов содержит в себе другие разделы как и файловая система, Registry имеет структуру дерева. Каждый узел (раздел или подраздел) называется ключом. Вы можете открывать новые ветви до тех пор, пока не доберетесь до уровня, на котором находятся только параметры.
Hkey_Classes_Root
Структура раздела несколько отличается от всех остальных. Для каждого зарегистрированного расширения файла имеется подключ (например, .bmp).
Значение этого ключа "По умолчанию" указывает на подключ описания документа ("ACDC_BMP"), который расположен в той же ветви основного раздела. В подключе описания документа и содержится цепочка ключей, хранящих информацию об ассоциациях, OLE, DDE.
Hkey_Local_Machine
Информация, сохраненная здесь, используется приложениями, устройствами и системой, и не зависит от того, кто был заявлен в качестве пользователя. Устройства могут помещать информацию в системный реестр с помощью Р1ug&Рlау-интерфейса, программные средства посредством стандартного API. Hkey_Local_Machine содержит ряд подразделов, описанных в табл.1.
Подраздел Config
• Содержит информацию о различных конфигурациях аппаратных средств.
• Каждая конфигурация имеет уникальное обозначение и хранится в отдельном подразделе с соответствующим именем.
• Конфигурации перечислены в списке в окне утилиты Система. Здесь же их можно обрабатывать.
• При запуске Windows проводится проверка конфигурации аппаратных средств. При этом может произойти следующее:
• В большинстве случаев конфигурационные данные позволяют Windows автоматически выбрать соответствующую конфигурацию.
• При первом после изменения оборудования запуске компьютера Windows создает новый элемент конфигурации для новых конфигурационных данных. В результате создается и новый Config-элемент в системном реестре.
• Когда конфигурационные данные не позволяют системе Windows однозначно решить, какую из описанных конфигураций следует выбрать, пользователю при загрузке системы предлагается меню, посредством которого он может выбрать подходящую конфигурацию.
Подраздел Enum
• Windows располагает специальными программами, которые отвечают за построение дерева аппаратуры в системном реестре (например, Диспетчер устройств, вызываемый через Панель управления - Система- Устройства).
• Каждому устройству присваивается уникальный идентификационный код.
• В системном реестре хранится идентификационная информация о каждом устройстве, например, тип устройства, идентификационный код (ID) устройства, информация об изготовителе и информация, о драйвере.
Информация о составе данного раздела приведена в табл.2.
Подраздел Software
• Содержит информацию о каждом программном средстве, установленном на компьютере.
• Содержимое этого раздела является общим для всех пользователей данного компьютера.
• Hkey_Local_Machine\Software содержит ряд подразделов и сведения о различных подразделах (их описание), которые могут появиться в системном реестре (см.табл.3).
Подраздел System
• Данные в подразделе System содержат все параметры драйверов устройств и служб, используемые при запуске Windows.
• Вся информация хранится в подразделе CurrentControlSet. Он содержит два следующих подраздела:
• Control: Подраздел включает информацию, используемую, при запуске системы, например, сетевое имя компьютера и запускаемые подсистемы.
• Services: Подраздел включает информацию, необходимую для контроля загрузки и конфигурирования драйверов, файловой системы, и др. Здесь также определяется, как отдельные службы вызывают одна другую.
Состав двух вышеназванных подразделов приведен в табл.4 и 5.
Hkey_Current_User и Hkey_Users
• Содержит Default-подраздел и подразделы для всех пользователей, заявленных в системе.
• Информация из подраздела Default используется для того, чтобы создать конфигурацию для нового пользователя.
• Hkey_Current_User содержит информацию о пользователе, работающем на компьютере в текущем сеансе (см. табл.6).
Если существуют одинаковые параметры в Hkey_Local_Machine и Hkey_Current_User, то используются значения параметров, взятые из Hkey_Current_User.
Hkey_Current_Config и Hkey_Dyn_Data
• Hkey_Current_Config указывает на текущую системную конфигурацию, которая сохранена в Hkey_Local_Machine\Config.
• Часть системной информации в Windows должна постоянно присутствовать в оперативной памяти, поскольку системе необходим быстрый доступ к этой информации и Windows не может ожидать, пока нужные данные будут прочитаны с жесткого диска. Вся эта информация находится в Hkey_Dyn_Data.
• Подраздел Hkey_Dyn_Data\Configuration Manager, называемый также деревом аппаратуры, представляет собой хранящееся в оперативной памяти описание текущей системной конфигурации.
• Дерево аппаратуры создается заново при каждом запуске системы и адаптируется, если в состав или конфигурацию аппаратуры были внесены изменения. Присутствующие в этом разделе данные можно просмотреть с помощью Редактора реестра, они всегда соответствуют текущему состоянию аппаратуры компьютера.
• Hkey_Dyn_Data содержит статистическую информацию о различных сетевых компонентах в системе. Она находится в подразделе PerfStats.
Таблица 1
Состав основного раздела Hkey_Local_Machine
Раздел |
Назначение |
Config |
Различные конфигурации компьютера. |
Enum |
Информация о подключенных к данному компьютеру устройствах. |
Hardware |
Информация о последовательных интерфейсах и модемах, которые используются программой HyperTerminal. |
Network |
Хранящаяся здесь сетевая информация создается при входе пользователя в сеть: имя пользователя, регистрационная информация, первичный поставщик услуг и другие сведения. |
Security |
Информация о том, какой компьютер в сети следит за безопасностью сети и поддерживает ли (допускает ли) данный компьютер удаленное управление. |
Software |
Информация о программных средствах, установленных на данном компьютере, и различные конфигурационные данные программ. |
System |
Информация данного раздела управляет запуском системы, загрузкой драйверов устройств, сервисом Windows и поведением системы. |
Таблица 2
Состав подраздела Hkey_Local_Machine \Enum
Подраздел |
Устройства |
ESDI |
Жесткие диски ESDI - |
FLОР |
Дисководы для гибких дисков |
ISAPNP |
Plug & Play устройства, подключенные к ISA-шине |
Monitor |
Дисплеи |
Network |
Сетевые протоколы |
Root |
Другие компоненты системы |
Таблица 3
Состав подраздела Hkey_Local_Machine \Software
Подраздел |
Назначение |
Classes |
Подраздел Classes имеет особое значение. Он определяет типы документов и возможные OLE-связи. Hkey Classes Root является псевдонимом (Alias) данного подраздела. Кроме того, он имеет решающее значение для совместимости с Windows 3.1-реестром. Подраздел Classes содержит два типа подразделов. Первый тип подразделов: соответствующие расширениям имен файлов, содержащие информацию, с помощью которой система в состоянии открыть документ с данным расширением. Второй описания OLE или DDE параметров (протоколов) для определенного класса документов. |
Description |
Содержит имя и номер версии программного средства, установленного на компьютере. Пользовательская информация о конфигурации приложения сохраняется в аналогичном подразделе в Hkey Current User. |
Microsoft |
Содержит информацию о программах, которые поддерживают сервис, встроенный в систему Windows. |
Таблица 4
Состав подраздела Hkey_Local_Machine \System\CurrentControlSet\Services
Подраздел |
Хранящаяся в подразделе информация |
Arbitrators |
Информация, необходимая для разрешения конфликтов между устройствами, например, данные об адресах, канале DMA, диапазоне ввода/вывода и запроса на прерывание. |
Class |
Содержит подраздел для каждого из типов устройств, поддерживаемых системой. |
MSNP32, NWNP32 |
Содержит подраздел для 32-разрядного сетевого драйвера защищенного режима и информацию о заявке в сети. |
VxD |
Содержит подраздел для каждого виртуального драйвера устройств (VxD). |
Таблица 5
Состав подраздела Hkey_Local_Machine\System\CurrentControlSet\Control
Подраздел |
Хранящаяся в подразделе информация |
ComputerName |
Сетевое имя компьютера |
FileSystem |
Тип и установки используемой файловой системы. |
IDConfigDB |
Идентификационный код текущей конфигурации. |
Keyboard layouts |
Список раскладок клавиатуры и соответствующих DLL-модулей для поддерживаемых языков. |
MediaResources |
Описание мультимедиа-компонентов и ' информация о соответствующих драйверах |
NetworkProvider |
Имена подразделов Services |
Nis |
Информация о национальной языковой поддержке. |
PerfStats |
Статистика о компонентах системы. Ее можно просмотреть с помощью утилиты Системный монитор. |
|
Информация об установленных принтерах или сервисном программном обеспечении. Включает ряд подразделов. |
Session Manager |
Содержит глобальные переменные системы, информацию о программах, которые могут конфликтовать с Windows, и список библиотек DLL, номера версий которых должны быть проверены. |
TimeZonelnformation |
Параметры для установки времени с учетом часовых поясов. |
Update |
Информация о том, была ли Windows установлена поверх предыдущей версии. |
Таблица 6
Состав основного раздела Hkey_Current_User
Подраздел |
Хранящаяся в подразделе информация |
AppEvents |
Пути и имена звуковых файлов, используемых для генерации звуков при определенных событиях в системе. |
Control Panel |
Установки из Панели управления. |
Keyboard layouts |
Текущая раскладка клавиатуры. |
Network |
Информация о текущем состоянии сети. |
InstallLocationsMRU |
Путь к установочным файлам. |
Software |
Установки активного пользователя, определяющие режимы работы программ (приложений). |
Копии реестра создаются автоматически в ОС в файлах System.DA0 и User.Da0. Для принудительного создания копии реестра можно использовать следующие методы:
Полезной особенностью Редактора системного реестра является способность импортировать и экспортировать параметры системного реестра в текстовый файл. Этот текстовый файл имеет расширение .REG, может быть сохранен, а затем использован другими людьми для боле простого изменения локальных параметров системного реестра. Вы можете просмотреть содержание этих текстовых файлов, экспортируя ключ в испытательный файл и открыв его в Блокноте. В Редакторе системного реестра выберете ключ, затем из меню "Реестр" выберете "Экспорт файл реестра ... ", укажите имя сохраняемого файла. Если Вы откроете этот файл в Блокноте, то увидите текст, подобный приведенному ниже:
REGEDIT4
[HKEY_LOCAL_MACHINE\SYSTEM\Setup]
"SetupType"=dword:00000000
"CmdLine"="setup -newsetup"
"SystemPrefix"=hex:c5,0b,00,00,00,40,36,02
Содержание его весьма простое, REGEDIT4 указывает тип файла, [HKEY_LOCAL_MACHINE\SYSTEM\Setup] указывает ключ, где находятся параметры, "SetupType" =dword:00000000 это параметр, часть записи указанная непосредственно после "=" определяется в зависимости от типа данных; Строковое, Двоичное, или DWORD.
Отредактировав этот файл, Вы можете легко произвести изменения в системном реестре, для этого дважды щелкните на нем, или выберете "Импорт файла реестра…" из меню "Реестр", и параметры будут добавлены в системный реестр.
Хотя и есть возможность вручную войти в системный реестр и удалить ненужные записи, Microsoft предлагает изящный инструмент, для автоматизации это процесса под названием "RegClean". RegClean анализирует ключи системного реестра Windows. Он находит ключи, которые содержат ошибочные значения, потом записывает эти значения в файл Undo.Reg, и затем удаляет их из системного реестра.
Прежде чем рассмотреть пример использования свойств и методов класса TRegistry, давайте кратко перечислим их.
В следующей таблице перечислены свойства класса TRegistry.
Свойство |
Описание |
CurrentKey |
Позволяет узнать текущую подсекцию, в которой проводятся операции по чтению и записи. Для изменения подсекции следует использовать методы OpenKey и OpenKeyReadOnly |
CurrentPath |
Позволяет узнать полное название текущей подсекции |
LazyWrite |
Задает способ обновления информации в реестре непосредственно или после вызова метода CloseKey. |
RootKey |
Задает корневую секцию в реестре. По умолчанию установлено значение HKEY_CURRENT_USER |
В следующей таблице перечислены методы класса TRegistry.
Метод |
Описание |
CloseKey |
Записывает внесенные изменения и закрывает текущую подсекцию |
Create |
Создает экземпляр класса TRegistry и задает значение корневой секции - HKEY_CURRENT_USER |
CreateKey |
Создает подсекцию |
DeleteKey |
Удаляет подсекцию |
DeleteValue |
Удаляет значение элемента |
Destroy |
Уничтожает ранее созданный экземпляр класса TRegistry |
GetDataInfo |
Возвращает тип данных для указанного элемента |
GetDataSize |
Возвращает размер данных для указанного элемента |
GetDataType |
Возвращает тип данных для указанного элемента |
GetKeyInfo |
Возвращает информацию о текущем элементе |
GetKeyNames |
Возвращает имена подсекций для указанной секции |
GetValueNames |
Возвращает названия элементов для указанной подсекции |
HasSubKeys |
Позволяет узнать, имеются ли подсекции для указанной секции |
KeyExists |
Позволяет узнать, существует ли элемент |
LoadKey |
Создает новую подсекцию и загружает в нее информацию из указанного файла |
MoveKey |
Перемещает указанную подсекцию и все вложенные подсекции в заданное место |
OpenKey |
Открывает подсекцию |
OpenKeyReadOnly |
Открывает подсекцию только для чтения |
ReadBinaryData |
Считывает данные в бинарном формате |
ReadBool |
Считывает данные в булевом формате |
ReadCurrency |
Считывает данные в формате валюты |
ReadDate |
Считывает данные в формате даты |
ReadDateTime |
Считывает данные в формате “дата/время” |
ReadFloat |
Считывает данные в формате с плавающей точкой |
ReadInteger |
Считывает данные в целочисленном формате |
ReadString |
Считывает данные в строчном формате |
ReadTime |
Считывает данные в формате времени |
RegistryConnect |
Устанавливает соединение с реестром на другом компьютере |
RenameValue |
Переименовывает элемент |
ReplaceKey |
Замещает значение элемента значениями из файла |
RestoreKey |
Восстанавливает значение элемента из файла |
SaveKey |
Сохраняет значение элемента в файле |
UnLoadKey |
Удаляет подсекцию, загруженную методом LoadKey |
ValueExists |
Позволяет узнать, существует ли значение у элемента |
WriteBinaryData |
Записывает данные в бинарном формате |
WriteBool |
Записывает данные в булевом формате |
WriteCurrency |
Записывает данные в формате валюты |
WriteDate |
Записывает данные в формате даты |
WriteDateTime |
Записывает данные в формате “дата/время” |
WriteExpandString |
Записывает данные в формате "расширенно" строки |
WriteFloat |
Записывает данные в формате с плавающей точкой |
WriteInteger |
Записывает данные в целочисленном формате |
WriteString |
Записывает данные в строчном формате |
WriteTime |
Записывает данные в формате времени |
После того как мы кратко познакомились со свойствами и методами класса TRegistry, давайте рассмотрим несколько примеров их использования.
Перед использованием свойств и методов класса TRegistry, необходимо создать экземпляр этого класса. Например:
var
R: TRegistry;
...R := TRegistry.Create;
Задание корневой секции
Если вы собираетесь работать с секцией, отличной от HKEY_CURRENT_USER (это значение задается по умолчанию), то после инициализации вы должны изменить значение свойства RootKey. Возможны следующие значения:
HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
HKEY_PERFORMANCE_DATA
HKEY_CURRENT_CONFIG
HKEY_DYN_DATA
Например:
with R do
begin
RootKey := HKEY_LOCAL_MACHINE;
// Продолжаем работу с реестром
end;
Задания на выполнение лабораторной работы
№ варианта |
Задание |
1 |
Очистить список недавно открытых документов |
2 |
Показать/скрыть пункты подменю «Найти» в меню «Пуск» |
3 |
Добавить/Удалить ярлык «Мои документы» в окно «Мой компьютер» |
4 |
Запретить/Разрешить команду перезагрузки компьютера |
5 |
Показать/скрыть значок «Мой компьютер» |
6 |
Запретить/Разрешить доступ к графическому редактору |
7 |
Скрыть/показать пункты подменю «Программы» в меню «Пуск» |
8 |
Запретить/Разрешить доступ к настройкам панели управления |
9 |
Запретить/разрешить все команды меню «Пуск» |
10 |
Изменить задержку при появлении меню |
11 |
Удалить/восстановить группу «Автозагрузка» в меню «Пуск» |
12 |
Очистить список недавно использованных команд |
13 |
Добавить/Удалить новую команду в окне проводника |
14 |
Запретить/Разрешить сохранения установок |
15 |
Запретить/Разрешить доступ к некоторым программам |
16 |
Запретить/Разрешить доступ к средствам редактирования реестра |
17 |
Запретить/Разрешить доступ к настройкам сети |
18 |
Запретить/Разрешить доступ к настройкам паролей |
19 |
Запретить/Разрешить доступ к системным настройкам |
20 |
Запретить/Разрешить некоторые команды меню «Пуск» |
21 |
Скрыть/Показать пункты подменю «Настройка» в меню «Пуск» |
22 |
Изменить значок корзины |
23 |
Добавить/Удалить значок корзины в окно «Мой компьютер» |
24 |
Включить/Отключить автозапуск CD-ROM |
25 |
Скрыть/Показать значок Internet Explorer |
26 |
Изменить управление выполнения гладкой прокрутки Windows |
27 |
Запретить/Разрешить доступ к дисплею в «Панель Управления» |
28 |
Запретить/Разрешить доступ к меню «Пароли» в «Панель Управления |
29 |
Запретить/Разрешить команду выключения компьютера |
30 |
Удалить/Восстановить группу «Стандартные» из меню «Пуск» |
31 |
Очистить список недавно открытых документов |
32 |
Показать/скрыть пункты подменю «Найти» в меню «Пуск» |
33 |
Добавить/Удалить ярлык «Мои документы» в окно «Мой компьютер» |
34 |
Запретить/Разрешить команду перезагрузки компьютера |
35 |
Показать/скрыть значок «Мой компьютер» |
36 |
Запретить/Разрешить доступ к графическому редактору |
37 |
Скрыть/показать пункты подменю «Программы» в меню «Пуск» |
38 |
Запретить/Разрешить доступ к настройкам панели управления |
39 |
Запретить/разрешить все команды меню «Пуск» |
Контрольные вопросы