事件用于Windows中的TimeChanged



在我的应用程序的早期版本中,为了在Windows中捕获时间已更改,我实现了一个IMessageFilter来捕获时间更改时Windows发送的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

我想这就是您想要的:

SystemEvents.TimeChanged

相关内容

  • 没有找到相关文章

最新更新