- А какое сегодня число? - спросил уставший программист.
Второй не задумываюсь отвечает:
- Целое, положительное!
uses
Registry;
...
var
reg : TRegistry;
ts : TStrings;
i : integer;
begin
reg := TRegistry.Create;
reg.RootKey := HKEY_LOCAL_MACHINE;
reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Time Zones', false);
if reg.HasSubKeys thenbegin
ts := TStringList.Create;
reg.GetKeyNames(ts);
reg.CloseKey;
for i := 0 to ts.Count -1 dobegin
reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Time Zones\' + ts.Strings[i], false);
Memo1.Lines.Add(ts.Strings[i]);
Memo1.Lines.Add(reg.ReadString('Display'));
Memo1.Lines.Add(reg.ReadString('Std'));
Memo1.Lines.Add(reg.ReadString('Dlt'));
Memo1.Lines.Add('----------------------');
reg.CloseKey;
end;
ts.Free;
endelse
reg.CloseKey;
reg.free;
end;
Программный код на Delphi, который извлекает список часовых зон из реестра Windows и отображает их в контроле Memo1. Вот шаг за шагом, что код делает:
Создается объект TRegistry, используемый для взаимодействия с реестром Windows.
Код открывает ключ "SOFTWARE\Microsoft\Windows\CurrentVersion\Time Zones" под корневым ключом HKEY_LOCAL_MACHINE.
Если ключ имеет подключи (то есть часовые зоны), создается объект TStringList и извлекает список имен часовых зон с помощью метода GetKeyNames.
Затем код проходит по каждому имени часовой зоны, открывая соответствующий подключ и чтение трех строковых значений: "Display", "Std" и "Dlt".
Для каждого часового пояса добавляет имя в строки контрола Memo1, за которым следуют прочитанные строки.
Наконец, код закрывает реестровый ключ и освобождает объект TRegistry.
Чтобы получить список часовых зон программно, вы можете использовать этот код как есть. Однако, если вы хотите извлечь список без отображения в контроле Memo1, вы можете изменить код для хранения имен часовых зон в массиве или коллекции вместо добавления их в строки контрола Memo1.
Вот альтернативное решение, которое извлекает список часовых зон и хранит его в объекте TStringList:
В этом коде используется метод EnumKey для извлечения списка имен часовых зон и хранения их в строковом списке ts. Вы можете использовать этот список, как вам нужно в вашем программе.
Статья описывает способ получения списка часовых поясов на компьютере с помощью программирования в Delphi, используя библиотеку Registry и строковый список.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.