Работа с реестром Windows из приложений Delphi

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

Реестр «базы данных» хранится в виде двоичного файла. Чтобы найти его, запустите regedit.exe (утилита редактора реестра Windows) в вашем каталоге Windows. Вы увидите, что информация в реестре организована аналогично проводник Виндоус. Мы можем использовать regedit.exe, чтобы просмотреть информацию реестра, изменить ее или добавить к ней некоторую информацию. Очевидно, что изменения базы данных реестра могут привести к сбою системы (конечно, если вы не знаете, что делаете).

Вероятно, очень хорошо известно, что во времена Windows 3.xx файлы INI были популярным способом хранения информации о приложении и других настраиваемых пользователем настроек. Самым страшным аспектом файлов INI является то, что они представляют собой просто текстовые файлы, которые пользователь может легко редактировать (изменять или даже удалять). В 32-битной Windows Microsoft рекомендует использовать Registry для хранения информации, которую вы обычно помещаете в INI-файлы (пользователи с меньшей вероятностью изменят записи в реестре).

instagram viewer

Delphi обеспечивает полную поддержку для изменения записей в системном реестре Windows: через класс TRegIniFile (тот же базовый интерфейс, что и TIniFile класс для пользователей файлов INI с Delphi 1.0) и класс TRegistry (низкоуровневая оболочка для реестра Windows и функции, которые работают с реестром).

Как упоминалось ранее в этой статье, основные операции реестра (с использованием манипуляции с кодом) считывают информацию из реестра и записывают информацию в базу данных.

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

~~~~~~~~~~~~~~~~~~~~~~~~~
использует реестр;
процедура TForm1.FormCreate (Отправитель: TObject);
вар
рег: TRegistry;
начать
рег: = TRegistry. Создайте;
с рег начинаю
пытаться
если OpenKey ('\ Control Panel \ desktop', False), тогда начинайте
// меняем обои и накладываем их
рег. WriteString ('Обои для рабочего стола', 'c: \ windows \ CIRCLES.bmp');
рег. WriteString ('TileWallpaper', '1');
// отключаем заставку // ('0' = отключить, '1' = включить)
рег. WriteString ('ScreenSaveActive', '0');
// обновить изменения немедленно
SystemParametersInfo (SPI_SETDESKWALLPAPER, 0, ноль, SPIF_SENDWININICHANGE);
SystemParametersInfo (SPI_SETSCREENSAVEACTIVE, 0, ноль, SPIF_SENDWININICHANGE);
конец
наконец
рег. Свободно;
конец;
конец;
конец;
~~~~~~~~~~~~~~~~~~~~~~~~~

Те две строки кода, которые начинаются с SystemParametersInfo... заставить Windows обновить обои и заставку немедленно. Когда вы запустите свое приложение, вы увидите обои Windows битовая карта Перейдите на изображение Circles.bmp, то есть, если у вас есть изображение circle.bmp в вашем каталоге Windows. (Примечание. Заставка отключена.)