diff options
Diffstat (limited to 'MediaBrowser.Server.Startup.Common/SystemEvents.cs')
| -rw-r--r-- | MediaBrowser.Server.Startup.Common/SystemEvents.cs | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/MediaBrowser.Server.Startup.Common/SystemEvents.cs b/MediaBrowser.Server.Startup.Common/SystemEvents.cs index 088d04a24..8d5cd4ad8 100644 --- a/MediaBrowser.Server.Startup.Common/SystemEvents.cs +++ b/MediaBrowser.Server.Startup.Common/SystemEvents.cs @@ -9,6 +9,8 @@ namespace MediaBrowser.Server.Startup.Common { public event EventHandler Resume; public event EventHandler Suspend; + public event EventHandler SessionLogoff; + public event EventHandler SystemShutdown; private readonly ILogger _logger; @@ -16,6 +18,20 @@ namespace MediaBrowser.Server.Startup.Common { _logger = logger; Microsoft.Win32.SystemEvents.PowerModeChanged += SystemEvents_PowerModeChanged; + Microsoft.Win32.SystemEvents.SessionEnding += SystemEvents_SessionEnding; + } + + private void SystemEvents_SessionEnding(object sender, Microsoft.Win32.SessionEndingEventArgs e) + { + switch (e.Reason) + { + case Microsoft.Win32.SessionEndReasons.Logoff: + EventHelper.FireEventIfNotNull(SessionLogoff, this, EventArgs.Empty, _logger); + break; + case Microsoft.Win32.SessionEndReasons.SystemShutdown: + EventHelper.FireEventIfNotNull(SystemShutdown, this, EventArgs.Empty, _logger); + break; + } } private void SystemEvents_PowerModeChanged(object sender, Microsoft.Win32.PowerModeChangedEventArgs e) |
