-2

我使用调用 OntimeChange() 的函数编写了注册到 systemevent.Timechange() 的 ac# 服务(如 MSDN http://msdn.microsoft.com/en-us/library/microsoft.win32.systemevents.aspx中所述)在 Visual Studio 中运行这段代码一切正常(在调试或发布模式下),但是当我运行服务时,我看到函数 OntimeChange() 没有被调用(我在这个函数的日志中添加了打印,我看到了没有打印到日志中)

有人可以帮忙吗?

4

2 回答 2

1

SystemEvents.TimeChanged事件的备注部分,您可以阅读以下文本:

笔记

仅当消息泵正在运行时才会引发此事件。在 Windows 服务中,除非使用隐藏表单或手动启动消息泵,否则不会引发此事件。有关显示如何使用 Windows 服务中的隐藏表单来处理系统事件的代码示例,请参阅 SystemEvents 类。

所以简而言之,你需要一个隐藏的表单来接收服务中的这些事件。请参阅您在问题中链接的页面上列出的示例 2,了解如何执行此操作。

于 2011-12-12T12:55:21.267 回答
0

利用AppDomain.CurrentDomain.BaseDirectory

于 2013-01-08T12:04:19.413 回答