ЛЕКЦИЯ №2

1. РАБОТА С РЕЕСТРОМ WINDOWS


Реестр Windows – это база данных, в которой операционная система Windows и внешние программы сохраняют нужные им данные. Логическая структура реестра напоминает строение Ini-файла, отличие состоит в том, что Ini-файл состоит из разделов (секций) и ключей раздела со значениями, а реестр состоит из разделов, вложенных подразделов (неограниченное число) и ключей (параметров) разделов/подразделов со значениями.


Реестр Windows имеет древовидную структуру, подобную файловой системе, где разделы и подразделы соответствуют каталогам и подкаталогам, а ключи со значениями – именам файлов:


Рис. 1


Любая программа может сохранять свои данные или в реестре Windows или в Ini-файлах. Достоинства и недостатки использования реестра и Ini-файлов следующие:


ПараметрИспользование реестра WindowsИспользование Ini-файлов
Перенос данных с компьютера на компьютерТрудность переноса данных с использованием экспорта/импорта ветвей реестра через программу редактора реестра («regedit»)Легкость переноса данных путем простого копирования Ini-файла с одного компьютера на другой
Модификация данныхЧерез функции прикладной программы или программу редактора реестраЧерез функции прикладной программы или корректировки в обычном текстовом редакторе
Привязка к конкретному пользователю WindowsАвтоматически на уровне операционной системы через корневой раздел «HKEY_CURRENT_USER»Трудно через функции прикладной программы
Привязка к конкретному компьютеруАвтоматически на уровне операционной системы через корневой раздел «HKEY_LOCAL_MACHINE»Трудно через функции прикладной программы

Таблица 1


Реестр состоит из шести корневых разделов, два из которых представляют наибольший интерес: раздел «HKEY_LOCAL_MACHINE» предназначен для хранения данных, доступных всем пользователям Windows, а раздел «HKEY_CURRENT_USER» хранит данные, доступные только для текущего пользователя Windows. Другие корневые разделы обычно используются только операционной системой и некоторыми системными программами.


Язык программирования Delphi 5 позволяет производить с реестром Windows любые манипуляции через подключение модуля «Registry» в разделе «interface -> uses». Рассмотрим на примере основные базовые операции при записи и считывании данных с реестра:


procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

{ Процедура записи данных в реестр }

var Reg: tRegistry;

begin

Reg:=tRegistry.Create;

Reg.RootKey:=HKEY_LOCAL_MACHINE;

try

if Reg.OpenKey('\Software\TSN736\', true) then begin

if not Reg.KeyExists('setup') then Reg.CreateKey('setup');

if Reg.OpenKey('\Software\TSN736\setup', false) then begin

Reg.WriteInteger('Left', form1.left); Reg.WriteInteger('Top', form1.top);

Reg.CloseKey;

end;

end;

finally

Reg.Free;

end;

end;


procedure TForm1.FormCreate(Sender: TObject);

{ Процедура чтения данных с реестра }

var Reg: tRegistry;

begin

Reg:=tRegistry.Create;

Reg.RootKey:=HKEY_LOCAL_MACHINE;

try

if Reg.OpenKey('\Software\TSN736\setup', false) then begin

try form1.left:=Reg.ReadInteger('Left'); except; end;

try form1.top:=Reg.ReadInteger('Top'); except; end;

Reg.CloseKey;

end;

finally

Reg.Free;

end;

end;



Загрузка...