В предыдущей версии моего Приложения для включения захвата того, что время было изменено в Windows, я реализовал IMessageFilter для захвата WM_, который отправляется окнами, когда время изменилось.
Я знаю, что теперь с .NET 4 (ранее я использовал .NET 2 (с отражением) для «ResetTimeZone», я могу просто вызвать ClearCachedData.
Я надеюсь, что в BCL есть какое-то событие, к которому я могу присоединиться, которое, возможно, я не видел, которое может сообщить, что время было изменено.
Если нет, я просто буду придерживаться моего существующего фильтра. Такое событие существует? Похож на System.Net.NetworkInformation.NetworkChange.NetworkAddressChanged
Public Function PreFilterMessage(ByRef m As System.Windows.Forms.Message) As Boolean Implements
System.Windows.Forms.IMessageFilter.PreFilterMessage
Select Case m.Msg
Case 30
System.Globalization.CultureInfo.CurrentCulture.ClearCachedData()
'ResetTimeZone()
RaiseEvent TimeChanged(Me, EventArgs.Empty)
Case Else
End Select
End Function