c#服务注册到systemevent.Timechange()

本文关键字:Timechange systemevent 服务 注册 | 更新日期: 2023-09-27 18:17:29

我写了一个c#服务,注册到systemevent.Timechange(),函数调用OntimeChange()(如MSDN http://msdn.microsoft.com/en-us/library/microsoft.win32.systemevents.aspx中提到的)在visual studio中运行此代码都可以正常工作(在调试或发布模式下),但是当我运行服务时,我看到函数OntimeChange()没有被调用(我在这个函数中添加了打印到日志中,并且我看到没有打印到日志中)

有人能帮忙吗?

c#服务注册到systemevent.Timechange()

在SystemEvents。时间改变事件你可以阅读以下文本:

注意

此事件仅在消息泵正在运行时引发。在Windows中服务,除非使用了隐藏表单或消息泵手动启动时,将不会引发此事件。对于代码示例控件中的隐藏窗体来处理系统事件Windows服务,参见SystemEvents类。

因此,简而言之,您需要一个隐藏表单来接收服务中的这些事件。关于如何做到这一点,请参阅您在问题中链接的页面上列出的示例2。

use AppDomain.CurrentDomain.BaseDirectory