Работа с реестром Windows

Печать
Статьи

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

Реестр хранится как бинарный файл. Для того, чтобы просмотреть его, запустите Regedit.exe (редактор реестра Windows), который находится в директории Windows. Информация в редакторе реестра организована так же, как в Проводнике Windows. Вы можете использовать Редактор реестра для просмотра информации реестра, изменять или добавлять в него какие-либо данные.

Редактор реестра Windows

Внимание: изменение реестра может привести в выходу системы из строя! Конечно, если Вы не знаете, что Вы делаете.

INI против Реестра

В старых версиях Windows для хранения настроек приложений и самой Windows, информация хранилась в INI файлах. Самое стращное в том, что это простые текстовые файлы, которые пользователь может легко редактировать, изменять их и даже удалить.

В 32-разрядный версиях Windows Microsoft рекомендует использовать реестр для хранения информации приложений, где пользователи не смогут изменить данные, и тем самым навредить приложениям и самой системе.

Delphi обеспечивает полную поддержку изменений записей в системном реестре через класс TRegistry.

Запись в реестр

Как уже упоминалось, основные операции - это чтение информации из реестра и запись ее в реестр.

В следующем примере мы будем менять обои для Рабочего стола Windows, а также отключать ScreenSaver Windows при помощи класса TRegistry. Перед тем, как использовать класс TRegistry, нужно добавить модуль Registry в раздел uses Вашей программы.


uses
    { ... }, Registry;
	
procedure TForm1.FormCreate(Sender: TObject) ;
var
    reg: TRegistry;
begin
    reg:= TRegistry.Create;
    with reg do begin
     try
      if OpenKey('\Control Panel\desktop', False) then begin
      // Поменять обои и замостить Рабочий стол
       reg.WriteString ('Wallpaper', 'C:\Windows\CIRCLES.bmp') ;
       reg.WriteString ('TileWallpaper', '1') ;
       // Отключаем ScreenSaver //('0'=disable, '1'=enable)
       reg.WriteString('ScreenSaveActive', '0') ;
       // сразу же обновить изменения
       SystemParametersInfo (SPI_SETDESKWALLPAPER, 0,
	                         nil, SPIF_SENDWININICHANGE) ;
       SystemParametersInfo (SPI_SETSCREENSAVEACTIVE, 0,
	                         nil, SPIF_SENDWININICHANGE) ;
      end
     finally
       reg.Free;
     end;
    end;
end;

Две строчки кода, которые начинаются с SystemParametersInfo принуждают Windows обновить обои и заставку немедленно. Когда Вы запустите приложение, то сразу же поменяются обои на изображение из файла Circles.bmp, если, конечно, такой файл находится в заданной директории. А экранная заставка теперь будет отключена.