Запись и удаление ключей, параметров и значений в системном реестре 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 выполняемой секции таков: