Хранятся тут:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\
Параметр TZI, в reg_binary...
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.
| Snake_B |
Сообщение
#1
|
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 72 Пол: Мужской Репутация: 0 |
Не могу разобраться как считать из реестра даные часовых поясов о датах перехода на летнее/зимнее время.
Хранятся тут: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\ Параметр TZI, в reg_binary... |
![]() ![]() |
| volvo |
Сообщение
#2
|
|
Гость |
Цитата такая вот функция не сработает однозначно. Ибо прототип неправильный. Правильный - такой:const DLL = 'ntdll.dll'; function RtlLocalTimeToSystemTime(LocalTime: LongInt; SystemTime: LongInt) : NTSTATUS; stdcall; external DLL name 'RtlLocalTimeToSystemTime'; function RtlLocalTimeToSystemTime( (из исходников JEDI). Чувствуешь разницу, да? Указатели там на LARGE_INTEGER (он же Int64), а не просто LongInt-ы. А насчет перевести в нужный формат - есть DateTimeToTimeStamp, которая это и делает. |
| Snake_B |
Сообщение
#3
|
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 72 Пол: Мужской Репутация: 0 |
не сработает однозначно. Ибо прототип неправильный. Правильный - такой: function RtlLocalTimeToSystemTime( (из исходников JEDI). Чувствуешь разницу, да? Указатели там на LARGE_INTEGER (он же Int64), а не просто LongInt-ы. А насчет перевести в нужный формат - есть DateTimeToTimeStamp, которая это и делает. спасибо... но сделал по другому... GetTimeZoneInformation(tTZI); DateTimeToSystemTime(tDati, st); SystemTimeToTzSpecificLocalTime(@tTZI, st, lt); оно DTZ учитывает... правда прийдется рассчитывать наоборот... ну да ладно... |
| Snake_B |
Сообщение
#4
|
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 72 Пол: Мужской Репутация: 0 |
ну... у меня опять вопросик...
вот собственно код: Код ReadBinaryData('TZI',rTZ,SizeOf(RTZ)); rTZ.Bias:=-660; WriteBinaryData('TZI',rTZ,SizeOf(RTZ)); в последней строке выдает ошибку (Failed to set data for TZI)... значение rTZ.Bias до изменения -720... вот как это дело победить? )) вот если что полный код: Код procedure ProcessingTZInfos; type TRec = record Bias, StdBias, DltBias: Integer; StdDate, DltDate: TSystemTime; end; var PatchM: string; RootKey: HKEY; RTZ: TRec; begin PatchM:='SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\'; RootKey := HKEY_LOCAL_MACHINE; if RegKeyExists(RootKey, PatchM) then begin with TRegistry.Create(KEY_READ) do try RootKey := HKEY_LOCAL_MACHINE; if OpenKey(patchM+'Kamchatka Standard Time\', False) then begin if Readstring('Display')='(GMT+12:00) Петропавловск-Камчатский' then begin ReadBinaryData('TZI', rTZ, SizeOf(RTZ)); rTZ.Bias:=-660; WriteBinaryData('TZI', rTZ, SizeOf(RTZ)); Writestring('Display', '(GMT+11:00) Магадан, Петропавловск-Камчатский, Курильские острова'); end; CloseKey; end; finally Free; end; end; end; Сообщение отредактировано: Snake_B - |
Snake_B Считывание даных часовых поясов из реестра... 29.04.2009 12:36
Ozzя Взято из ДРКБ
Возможно, этот код сможет Вам помочь… 29.04.2009 14:07
Snake_B
Взято из ДРКБ
Возможно, этот код сможет Вам помоч… 29.04.2009 22:28
volvo Snake_B, зачем тебе реестр? Вызывай GetTimeZoneInf… 29.04.2009 23:24
Snake_B
Snake_B, зачем тебе реестр? Вызывай GetTimeZoneIn… 2.05.2009 2:43
Snake_B
Snake_B, зачем тебе реестр? Вызывай GetTimeZoneIn… 2.09.2010 3:29
volvo И с какого такого времени в реестре хранится эта и… 2.05.2009 2:58
Snake_B
И с какого такого времени в реестре хранится эта … 2.05.2009 13:34
volvo Ну, смотри... Ты сам хотел читать из реестра (на ф… 2.05.2009 15:17
Snake_B
Ну, смотри... Ты сам хотел читать из реестра (на … 2.05.2009 23:46
volvo Как обычно, только тебе придется сначала еще и тип… 2.09.2010 5:43
Snake_B
Как обычно, только тебе придется сначала еще и ти… 2.09.2010 5:52
Lapp а как этот параметр приравнять к NULL?
А поставить… 2.09.2010 6:44
volvo Андрей, все-таки, nil, а не NULL :)
Snake_B
Я ж г… 2.09.2010 13:27
Lapp Андрей, все-таки, nil, а не NULL :)фу ты ну ты..… 2.09.2010 13:41
Snake_B
Андрей, все-таки, [b]nil, а не NULL :)
ну, вот … 2.09.2010 14:39
volvo
Ну, и я попробовал - компилятор это сожрал запрос… 2.09.2010 15:01
Snake_B
Ну, и я попробовал - компилятор это сожрал запрос… 2.09.2010 15:05
volvo Внимание, вопрос: А что тебе возвращает GetTimeZon… 2.09.2010 16:58
Snake_B
Внимание, вопрос: А что тебе возвращает GetTimeZo… 2.09.2010 17:20
Snake_B
но всё, вопрос вроде закрыт... сделал через … 4.09.2010 1:46
Snake_B
ну... у меня опять вопросик...
вот собственно код… 10.09.2010 0:56![]() ![]() |
|
Текстовая версия | 5.11.2025 4:50 |