Программное отключение перевода времени
От: MavTG  
Дата: 05.10.11 13:56
Оценка: +1
Всем, доброго времени суток.
Столкнулся с такой проблемой, необходимо программно отключить в Windows «автоматический перевод на летнее время» по аналогии с аплетом «Дата и время», где убирается галочка напротив

Что сделано в программе:
1) Записываю в поле реестра SYSTEM\\CurrentControlSet\\Control\\TimeZoneInformation\\DisableAutoDaylightTimeSet значение 1.
2) Затем вызываю
::SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, NULL, NULL, SMTO_BLOCK, 10000, &dwRez)

Для тестирования в ручную меняю время на 30 октября 2011 года 2ч 58 минут,
чтобы не дожидаться дня «Х» перевода часов на осеннее время.

В результате получаю:
1) Если вызвать аплет «Дата и время», то галочки напротив «Windows «автоматический перевод на летнее время»» не стоит.
2) Но время 30 октября все равно переводится на час назад. (т.е. переход на зимнее время осуществляется).

Вопрос – что мне необходимо сделать, чтобы программно отключить ««автоматический перевод на летнее время и обратно»?

Заранее благодарен.


06.10.11 06:54: Перенесено модератором из 'C/C++' — Odi$$ey
отмена перевода времени
Re: Программное отключение перевода времени
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 05.10.11 14:15
Оценка:
Здравствуйте, MavTG, Вы писали:

MTG>Всем, доброго времени суток.

MTG>Столкнулся с такой проблемой, необходимо программно отключить в Windows «автоматический перевод на летнее время» по аналогии с аплетом «Дата и время», где убирается галочка напротив

MTG>Что сделано в программе:

MTG>1) Записываю в поле реестра SYSTEM\\CurrentControlSet\\Control\\TimeZoneInformation\\DisableAutoDaylightTimeSet значение 1.
MTG>2) Затем вызываю
MTG>::SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, NULL, NULL, SMTO_BLOCK, 10000, &dwRez)

MTG>Для тестирования в ручную меняю время на 30 октября 2011 года 2ч 58 минут,

MTG>чтобы не дожидаться дня «Х» перевода часов на осеннее время.

MTG>В результате получаю:

MTG>1) Если вызвать аплет «Дата и время», то галочки напротив «Windows «автоматический перевод на летнее время»» не стоит.
MTG>2) Но время 30 октября все равно переводится на час назад. (т.е. переход на зимнее время осуществляется).

MTG>Вопрос – что мне необходимо сделать, чтобы программно отключить ««автоматический перевод на летнее время и обратно»?


MTG>Заранее благодарен.

есть подозрение, что тут надо патчить настройки таймзоны для РФ, но как это сделать не в курсе.
Sic luceat lux!
Re[2]: Программное отключение перевода времени
От: rus blood Россия  
Дата: 05.10.11 14:19
Оценка:
Здравствуйте, Kernan, Вы писали:

K>есть подозрение, что тут надо патчить настройки таймзоны для РФ, но как это сделать не в курсе.


Значения полей DaylightStart и StandardStart затираются в нули.
Имею скафандр — готов путешествовать!
Re: Программное отключение перевода времени
От: Centaur Россия  
Дата: 06.10.11 01:30
Оценка:
Здравствуйте, MavTG, Вы писали:

MTG>Всем, доброго времени суток.

MTG>Столкнулся с такой проблемой, необходимо программно отключить в Windows «автоматический перевод на летнее время» по аналогии с аплетом «Дата и время», где убирается галочка напротив

А что, патч имени Медведа на Windows ещё не вышел?
Re[2]: Программное отключение перевода времени
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 06.10.11 02:54
Оценка:
Здравствуйте, Centaur, Вы писали:

C>А что, патч имени Медведа на Windows ещё не вышел?


вышел
Re[3]: Программное отключение перевода времени
От: MavTG  
Дата: 07.10.11 07:43
Оценка:
Здравствуйте, rus blood, Вы писали:

RB>Здравствуйте, Kernan, Вы писали:


K>>есть подозрение, что тут надо патчить настройки таймзоны для РФ, но как это сделать не в курсе.


RB>Значения полей DaylightStart и StandardStart затираются в нули.


Спасибо. Помогло. Только еще необходимо записать 0 в DaylightBias.
И чтобы не было перевода на час назад (при летнем времени) значению поля "Bias" присвоить "ActiveTimeBias"
в \\SYSTEM\\CurrentControlSet\\Control\\TimeZoneInformation
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.