Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Запись строки в реестр без использования класса TRegistry

Delphi , ОС и Железо , Реестр



Автор: Dimka Maslov
WEB-сайт: http://delphibase.endimus.com

{ **** UBPFD *********** by delphibase.endimus.com ****
>> 
Функция записывает в реестр информацию в виде строки.

Входные параметры:
RootKey - идентификатор корневого раздела реестра, например
HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE и т.д.

Key - имя раздела реестра, если он не существует, то автоматически
создаётся

Name - имя параметра, для записи параметра "По умолчанию" ("Default"),
эта строка должна быть пустой

Value - значение параметра

В случае успеха функция возвращает True, или False при возникновении
ошибки записи в реестр

Зависимости: Windows
Автор:       Dimka Maslov, mainbox@endimus.ru, ICQ:148442121, Санкт-Петербург
Copyright:   Dimka Maslov
Дата:        13 мая 2002 г.
***************************************************** }

function RegWriteStr(RootKey: HKEY; Key, Name, Value: string): Boolean;
var
  Handle: HKEY;
  Res: LongInt;
begin
  Result := False;
  Res := RegCreateKeyEx(RootKey, PChar(Key), 0, nil, REG_OPTION_NON_VOLATILE,
    KEY_ALL_ACCESS, nil, Handle, nil);
  if Res <> ERROR_SUCCESS then
    Exit;
  Res := RegSetValueEx(Handle, PChar(Name), 0, REG_SZ, PChar(Value),
    Length(Value) + 1);
  Result := Res = ERROR_SUCCESS;
  RegCloseKey(Handle);
end;

Функция RegWriteStr в Delphi, которая записывает строковое значение в реестр Windows без использования класса TRegistry. Функция принимает четыре параметра:

  • RootKey: константа, указывающая корневой ключ реестра (например, HKEY_ CLASSES_ROOT, HKEY_CURRENT_USER и т.д.)
  • Key: имя registry key, в который будет записано значение
  • Name: имя значения, которое будет записано (или пустая строка для значения "Default")
  • Value: записываемое значение

Функция возвращает булево значение, указывающее, была ли операция успешной.

Содержание функции:

  1. Инициализирует переменную Result значением False.
  2. Использует функцию RegCreateKeyEx для создания нового registry key с указанным RootKey, Key и параметрами. Если создание неудачно, функция выходит из себя сразу.
  3. Использует функцию RegSetValueEx для установки значения новосозданного ключа с указанным Name, типом данных (REG_SZ для строки) и буфером значений (содержащим строку Value). Длина значения рассчитывается, добавляя 1 к длине строки Value.
  4. Устанавливает переменную Result в значение True, если операция установки была успешной, или False в противном случае.
  5. Закрывает handle registry key с помощью функции RegCloseKey.

Код включает обработку ошибок для функций RegCreateKeyEx и RegSetValueEx, что является хорошей практикой при работе с системными ресурсами.

Один из потенциальных улучшений - добавить более конкретные сообщения об ошибках или журналирование в случае ошибки. Это может помочь диагностировать проблемы более легко. Кроме того, всегда рекомендуется проверять null-значения перед использованием их как параметров для функций реестра.

В отношении альтернатив, вы можете использовать класс TRegistry из фреймворка VCL Delphi (Visual Component Library), который предоставляет более удобный и объектно-ориентированный способ взаимодействия с реестром. Однако, если вам нужно написать функцию, не зависящую от компонентов VCL, это реализация должна работать нормально.

Функция RegWriteStr записывает информацию в виде строки в реестр без использования класса TRegistry, принимая четыре параметра: RootKey, Key, Name и Value.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Реестр ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-06-16 07:47:56/0.0080630779266357/1