一尘不染

如何检测Windows关闭或注销

c#

我需要检测Windows是何时关闭(或重新启动)或用户何时注销。我需要在关闭应用程序之前正确关闭该应用程序。我注意到Windows关闭当天没有引发退出应用程序事件。

我阅读了《C#中是否有办法检测Windows关闭/注销并取消该操作(在询问用户之后)

但是我不确定在关闭之前应该在哪里执行操作。谢谢。


阅读 377

收藏
2020-05-19

共1个答案

一尘不染

将事件处理程序方法附加SystemEvents.SessionEndingevent,并且每次引发事件时都会调用您的处理程序方法。如果需要,处理此事件将使您可以
取消
挂起的注销或关闭。(尽管实际上并不能像在当前操作系统中那样运行;有关更多信息,请参见此处MSDN文档。)

如果您不想取消该事件,而只是对其做出适当的反应,则应该处理该SystemEvents.SessionEnded事件

但是,必须确保在关闭应用程序时 分离 事件处理程序,因为这两个都是静态事件。

2020-05-19