在C#/ VB.net中暂停系统关闭一段时间

时间:2009-11-11 08:32:21

标签: c# .net windows vb.net

我已经在C#.net中创建了一个Windows服务,现在我希望它能提醒我它是否会关闭。为此,我使用Dispose / Unload事件,但现在我想如果服务因系统关闭过程而停止,它会提醒我。

那么有没有办法获得对系统关闭事件的访问并在其中执行命令集,直到命令执行系统保持活动启动状态,并且只在任务完成时关闭。

如果我可以在没有正确加载系统的情况下运行它,例如像avast启动时扫描那样进一步增强它。

1 个答案:

答案 0 :(得分:1)

我知道我的答案为时已晚,但我现在才看到这个问题:)

您可以处理系统事件:

Microsoft.Win32.SystemEvents.SessionEnded

当您关闭系统或从系统注销时,将引发此事件。处理它以执行您需要的任何逻辑。

示例:

您服务的@OnStart()添加以下代码行:

Microsoft.Win32.SystemEvents.SessionEnded += new Microsoft.Win32.SessionEndedEventHandler(SystemEvents_SessionEnded);

然后添加事件处理程序:

void SystemEvents_SessionEnded(object sender, Microsoft.Win32.SessionEndedEventArgs e)
        {
            //put you logic here
        }