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

Выставить системные переменные среды

Delphi , ОС и Железо , Переменные окружения

Выставить системные переменные среды

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

{*********************************************}
 { Set Global Environment Function             }
 { Coder : Kingron,2002.8.6                    }
 { Bug Report : Kingron@163.net                }
 { Test OK For Windows 2000 Advance Server     }
 { Parameter:                                  }
 { Name : environment variable name            }
 { Value: environment variable Value           }
 { Ex: SetGlobalEnvironment('MyVar','OK')      }
 {*********************************************}

 function SetGlobalEnvironment(const Name, Value: string;
   const User: Boolean = True): Boolean;
 resourcestring
   REG_MACHINE_LOCATION = 'System\CurrentControlSet\Control\Session Manager\Environment';
   REG_USER_LOCATION = 'Environment';
 begin
   with TRegistry.Create do
     try
       if User then { User Environment Variable }
         Result := OpenKey(REG_USER_LOCATION, True)
       else { System Environment Variable }
       begin
         RootKey := HKEY_LOCAL_MACHINE;
         Result  := OpenKey(REG_MACHINE_LOCATION, True);
       end;
       if Result then
       begin
         WriteString(Name, Value); { Write Registry for Global Environment }
         { Update Current Process Environment Variable }
         SetEnvironmentVariable(PChar(Name), PChar(Value));
         { Send Message To All Top Window for Refresh }
         SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, Integer(PChar('Environment')));
       end;
     finally
       Free;
     end;
 end; { SetGlobalEnvironment }

Функция SetGlobalEnvironment в Delphi, которая устанавливает системную переменную окружения. Вот разбивка кода:

Подпись функции Функция принимает три параметра: * Name: имя переменной окружения для установки (строка) * Value: значение переменной окружения для установки (строка) * User: необязательный булевый параметр, который по умолчанию имеет значение True. Если User равно True, функция устанавливает пользовательский уровень переменной окружения. Если User равно False, функция устанавливает системный уровень переменной окружения.

Операции регистра Функция использует компонент TRegistry для взаимодействия с реестром Windows. Она создает экземпляр TRegistry и открывает желаемый ключ реестра: * Если User равно True, она открывает пользовательский уровень переменной окружения в ключе HKEY_CURRENT_USER\Environment. * Если User равно False, она открывает системный уровень переменной окружения в ключе HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment.

Установка значения регистра Если ключ реестра успешно открыт, функция записывает параметры Name и Value в регистр с помощью WriteString. Это устанавливает глобальную переменную окружения.

Обновление переменных окружения текущего процесса Функция обновляет переменные окружения текущего процесса, вызывая SetEnvironmentVariable с параметрами Name и Value. Это обеспечивает доступность новой переменной окружения для текущего процесса.

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

Обработка ошибок Функция использует блок try-finally для обеспечения закрытия ключа реестра, независимо от возникновения исключения или не.

Статья описывает функцию SetGlobalEnvironment для выставления системных переменных среды на языке Delphi.


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

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




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


:: Главная :: Переменные окружения ::


реклама


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

Время компиляции файла: 2024-08-19 13:29:56
2024-10-12 15:26:49/0.003882884979248/0