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

Помещение записи в одну из секций автозапуска реестра

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

Помещение записи в одну из секций автозапуска реестра

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

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Помещение записи в одну из секций автозапуска реестра

Функция помещает параметр Name и значение параметра Data, в одну из секций
автозапуска, выбранного раздела реестра.

HkeyTarget:THkeyTarget - указываете раздел реестра, в одну из секций
автозапуска которого должна быть помещена запись:
htLocalMachine - раздел HKEY_LOCAL_MACHINE
htCurrentUser - раздел HKEY_CURRENT_USER

SectionTarget:TSectionTarget - указываете одну из секций автозапуска,
в которую должна быть помещена запись:
stRun - секция RUN
stRunOnce - секция RunOnce
stRunOnceEx - секция RunOnceEx

Name:String - имя параметра (например, 'myApplication')

Data:String - значение параметра (например, Application.Exename)

Зависимости: windows, registry
Автор:       VID, vidsnap@mail.ru, ICQ:132234868, Махачкала
Copyright:   VID
Дата:        23 мая 2002 г.
***************************************************** }

type
  THKEYTarget = (htLocalMachine, htCurrentUser);
type
  TSectionTarget = (stRun, stRunOnce, stRunOnceEx);

function StoreToRunSection(HKEYTarget: THKEYTarget;
  SectionTarget: TSectionTarget; Name, Data: string): boolean;
var
  Reg: TRegistry;
  Section: string;
begin
  Result := TRUE;
  try
    reg := TRegistry.Create;
    if HKEYTarget = htLocalMachine then
      reg.RootKey := HKEY_LOCAL_MACHINE;
    if HKEYTarget = htCurrentUser then
      reg.RootKey := HKEY_CURRENT_USER;
    if SectionTarget = stRun then
      Section := 'Run';
    if SectionTarget = stRunOnce then
      Section := 'RunOnce';
    if SectionTarget = stRunOnceEx then
      Section := 'RunOnceEx';
    reg.LazyWrite := false;
    reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\' + Section, false);
    reg.WriteString(Name, Data);
    reg.CloseKey;
    reg.free;
  except RESULT := FALSE;
  end;
end;

// Пример использования:

begin
  StoreToRunSection(htLocalMachine, stRun, 'Имя программы',
    application.exename);
end;

Вот перевод текста на русский язык:

Это фрагмент кода на Delphi, демонстрирующий, как хранить пару ключ-значение в одной из секций автозапуска реестра Windows.

Сюда включены два перечисления: THKeyTarget и TSectionTarget. Первое перечисление определяет корневой ключ реестра (либо HKEY_LOCAL_MACHINE, либо HKEY_CURRENT_USER), а второе - одну из трех секций автозапуска (RUN, RUNONCE или RUNONCEEX).

Также определена функция StoreToRunSection, которая принимает четыре параметра:

  • HKeyTarget: Корневой ключ реестра.
  • SectionTarget: Одна из секций автозапуска.
  • Name: Строка, представляющая имя параметра.
  • Data: Строка, представляющая значение параметра.

Функция создает новый экземпляр класса TRegistry и устанавливает его корневой ключ в соответствии с входным HKeyTarget. Затем она открывает указанную секцию с помощью метода OpenKey и записывает пару имя-значение в нее с помощью метода WriteString. Наконец, она закрывает ключ и освобождает объект реестра.

Код также включает пример использования функции, хранящий пару ключ-значение в секции RUN корневого ключа HKEY_LOCAL_MACHINE с именем 'Имя программы' и значением, равным имени исполняемого файла приложения.

Некоторые предложения по улучшению:

  • Вместо жесткого кодирования корневых ключей реестра (например, HKEY_LOCAL_MACHINE или HKEY_CURRENT_USER) рассмотрите возможность определения их как отдельных констант или перечислений.
  • Рассмотрите использование более robust механизма обработки ошибок вместо просто установки Result := FALSE в случае возникновения исключения.
  • Вам может потребоваться добавление дополнительных проверок и валидации для входных параметров (например, убедиться, что целевой секция является одним из допустимых вариантов).
  • Если это код планируется использовать в более крупном приложении, рассмотрите возможность обертывания его в отдельный класс или модуль для организации функциональности.

Функция помещает параметр Name и значение параметра Data в одну из секций автозапуска реестра, выбранного раздела реестра.


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

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




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


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


реклама


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

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 11:31:00/0.0054972171783447/1