Событие? для TimeChanged в Windows - PullRequest
1 голос
/ 11 января 2012

В предыдущей версии моего Приложения для включения захвата того, что время было изменено в 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

1 Ответ

0 голосов
/ 11 января 2012

Я думаю, это то, что вы ищете:

SystemEvents.TimeChanged

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...