2012-04-13 2 views
2

Мне удалось изменить TimeZone и дневное время в Windows с помощью SetTimeZoneInformation, но даже при установке wMonth на 0 установлен флажок в поле datetime.cpl.Как снять «Настройка дневного света ...» с помощью SetTimeZoneInformation?

TIME_ZONE_INFORMATION actual = new TIME_ZONE_INFORMATION(); 
NativeMethods.GetTimeZoneInformation(out actual); 
// Datetime.cpl put the standard time in daylight time and add the regkey 
// When executing this -> Regkey is not set automatically 
actual.DaylightBias = actual.StandardBias; 
actual.DaylightDate = actual.StandardDate; 
actual.DaylightName = actual.StandardName; 
RunWin32Method(() => NativeMethods.SetTimeZoneInformation(ref newZone)); 
NativeMethods.SendMessageTimeout(NativeMethods.HWND_BROADCAST, NativeMethods.WM_SETTING_CHANGE, IntPtr.Zero, IntPtr.Zero, 0x00, 1000, out ptr) 

// MSDN said 
// When executing this -> Regkey is not set automatically 
actual.StandardDate.Month = 0; 
RunWin32Method(() => NativeMethods.SetTimeZoneInformation(ref newZone)); 
NativeMethods.SendMessageTimeout(NativeMethods.HWND_BROADCAST, NativeMethods.WM_SETTING_CHANGE, IntPtr.Zero, IntPtr.Zero, 0x00, 1000, out ptr) 

Как это изменить? Нужно ли вручную создать/удалить ключ реестра DisableAutoDaylightTimeSet?

Благодаря

ответ

0

Создать/удалить ключ реестра вручную является способ сделать ...