Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.08.2007, 09:56   #1
Diogo
Пользователь
 
Аватар для Diogo
 
Регистрация: 15.08.2007
Сообщений: 17
По умолчанию Узнать настройки GMT

Столкнулся с очередной проблемой. Как узнать с программы какой часовой пояс выбран в системе?
Список часовых поясов с ветки HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones вытащить не проблема, но где в реестре откопать какая зона выбрана на данный момент не нашел. Стандартных функций Делфи тоже не откопал.

Может у кого есть живой пример?
Diogo вне форума Ответить с цитированием
Старый 18.08.2007, 10:13   #2
Хs-You
Пользователь
 
Аватар для Хs-You
 
Регистрация: 16.08.2007
Сообщений: 33
По умолчанию

Интересный вопрос! Ты можеш сказать конкретний для чего тебе это надо? Может другой путь найдём!
Как два байта переслать???
Хs-You вне форума Ответить с цитированием
Старый 18.08.2007, 10:23   #3
Хs-You
Пользователь
 
Аватар для Хs-You
 
Регистрация: 16.08.2007
Сообщений: 33
По умолчанию

Вот так можеш получить список часовых поясов

uses
Registry;

...

var
reg : TRegistry;
ts : TStrings;
i : integer;
begin
reg := TRegistry.Create;
reg.RootKey := HKEY_LOCAL_MACHINE;
reg.OpenKey('SOFTWARE\Microsoft\Win dows\CurrentVersion\Time Zones', false);
if reg.HasSubKeys then
begin
ts := TStringList.Create;
reg.GetKeyNames(ts);
reg.CloseKey;
for i := 0 to ts.Count -1 do
begin
reg.OpenKey('SOFTWARE\Microsoft\Win dows\CurrentVersion\Time Zones\' + ts.Strings[i], false);
Memo1.Lines.Add(ts.Strings[i]);
Memo1.Lines.Add(reg.ReadString('Dis play'));
Memo1.Lines.Add(reg.ReadString('Std '));
Memo1.Lines.Add(reg.ReadString('Dlt '));
Memo1.Lines.Add('----------------------');
reg.CloseKey;
end;
ts.Free;
end
else
reg.CloseKey;
reg.free;
end;
Как два байта переслать???
Хs-You вне форума Ответить с цитированием
Старый 18.08.2007, 10:31   #4
Diogo
Пользователь
 
Аватар для Diogo
 
Регистрация: 15.08.2007
Сообщений: 17
По умолчанию

Цитата:
Сообщение от Хs-You Посмотреть сообщение
Интересный вопрос! Ты можеш сказать конкретний для чего тебе это надо? Может другой путь найдём!
Список часовых поясов я и сам получить могу, как и говорил.

Программа написана для одной онлайн-игры. Сервак работает по времени GMT+1. Во всех логах время стоит именно этой часовой зоны. Для правильной работы нужно локальное время преобразовывать в серверное. Сейчас у меня реализованно так: Перед первым запуском программа предлагает пользователю выбрать свой часовой пояс (выбираю инфу именной из этой ветки).
Но во-первых это не сильно удобно.
Во-вторых (сам удивился) возникает очень много вопросов по-поводу - а какой у меня часовой пояс.

Дабы избежать этого хотелось бы брать настройки напрямую у винды и не заморачивать пользователя... Хотя чувствую тогда возникнет другой вопрос, в случае неправильных установок часового пояса в винде - "а почему у меня время не правильно отображает?"
Diogo вне форума Ответить с цитированием
Старый 18.08.2007, 11:54   #5
Хs-You
Пользователь
 
Аватар для Хs-You
 
Регистрация: 16.08.2007
Сообщений: 33
По умолчанию

я тут подумал и кажись эо дело взломом папахивает!
Как два байта переслать???
Хs-You вне форума Ответить с цитированием
Старый 18.08.2007, 12:00   #6
Diogo
Пользователь
 
Аватар для Diogo
 
Регистрация: 15.08.2007
Сообщений: 17
По умолчанию

Цитата:
Сообщение от Хs-You Посмотреть сообщение
я тут подумал и кажись эо дело взломом папахивает!
Нет, если есть желание - форум: http://neverlands.6bb.ru (описание Анализатора БФ и т.д.), и сама программа: http://bfa.h.com.ua/downloads/bfa.zip
Diogo вне форума Ответить с цитированием
Старый 18.08.2007, 12:05   #7
Хs-You
Пользователь
 
Аватар для Хs-You
 
Регистрация: 16.08.2007
Сообщений: 33
По умолчанию

разберусь попозже а пока на бок пойду как встану сразу отпишу тебе поэтой теме!
Как два байта переслать???
Хs-You вне форума Ответить с цитированием
Старый 18.08.2007, 13:05   #8
still_alive
Great Code Monkey
Форумчанин
 
Аватар для still_alive
 
Регистрация: 09.08.2007
Сообщений: 533
По умолчанию

Цитата:
Стандартных функций Делфи тоже не откопал.
GetTimeZoneInformation
still_alive вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прога для настройки! winXpSpeed Altera Софт 2 31.03.2008 23:20
Настройки internet vitalik007 О форуме и сайтах клуба 3 05.11.2007 06:22
Дайте настройки зенда mitrandir PHP 1 23.09.2007 00:58
Сохранить настройки меню Aleksandr Общие вопросы Delphi 11 09.08.2007 18:57