УЧЕБНИК ПО АВТОУСТАНОВКЕ WINDOWS

       

Запись и удаление ключей реестра


    Запись и удаление ключей, параметров и значений в системном реестре MS Windows посредством INF-скрипта являются базовыми процедурами, владея которыми, можно достигать и других целей. Сначала кратко о структуре системного реестра и типах параметров.

   

В системе существует нереляционная древовидная системная база данных для хранения всей системной информации в виде вложенных ключей, параметров ключей и их значений. Сама структура таблиц довольно проста, если не сказать "убога", потому что содержит подобие файловой системы, где объектами являются ключи содержащие данные всего двух типов: параметры и значения параметров. По сути каждый ключ является потомком INI-файла, из которого убрали понятие секций. Следует учесть, что до сих пор осталось ограничение на размер ключа со всеми его параметрами и значениями в 64 килобайта для совместимости с INI-файлами программ, написанных для MS Windows 3.1, и это накладывает дополнительные ограничения на и без того бедную возможностями функциональность этой базы данных. Физически база данных располагается в нескольких файлах, которые служат корнями "кустов" древовидной базы реестра. В зависимости от версии операционной системы, файлы разнятся по расположению и именам. Основная структура соответствий файлов и корней реестра:



INF REGISTRY_KEY Расположение в WIN 95, 98 Расположение в WIN NT 4, 5
HKLM HKEY_LOCAL_MASHINE %WinDir%\SYSTEM.DAT %SystemRoot%\System32\config\SOFTWARE
HKCU HKEY_CURRENT_USER %WinDir%\USER.DAT %USERPROFILE%\ntuser.dat
HKCR HKEY_CLASSES_ROOT %WinDir%\SYSTEM.DAT %SystemRoot%\System32\config\SOFTWARE
HKU HKEY_USERS    
HKEY_USERS\.default %WinDir%\SYSTEM.DAT %SystemRoot%\System32\config\default
HKEY_LOCAL_MASHINE\SYSTEM %WinDir%\SYSTEM.DAT %SystemRoot%\System32\config\SYSTEM
HKEY_LOCAL_MASHINE\SYSTEM\ControlSet002 отсутствует %SystemRoot%\System32\config\SYSTEM.ALT

    Формат записи в реестр в строке дочерней секции, вызываемой из параметра AddReg выполняемой секции таков:


HKXX,"PATH\REGKEY","parameter",X,"value"

    где:

HKXX - аббревиатура корневого ключа, имеющая применение в INF-скрипте вместо имени самого родительского ключа (здесь недопустимы переменные);

"PATH\REGKEY" - оставшийся после корневого ключа путь к изменяемому, удаляемому или создаваемому ключу (здесь допустимы переменные);

"parameter" - имя параметра реестрового ключа (переменные допустимы); X - тип параметра ключа (переменные недопустимы);

"value" - значение параметра ключа реестра (переменные допустимы).

    Удаление объектов реестра производится параметром DelReg в выполняемой секции и имеет идентичный синтаксис в дочерней секции, за исключением следующих деталей: не указывается значение и не указывается тип ключа. Если необходимо удалить только параметр ключа, нужно указать аббревиатуру_корня_реестра,"путь\к\ключу","имя_параметра", если весь ключ - аббревиатуру_корня_реестра,"путь\к\ключу". То есть формат записи строк в дочерней секции при удалении объектов в реестре таков:

HKXX,"PATH\REGKEY","parameter"


Содержание раздела