From b9a617e4acf66a983709d71f396e6a8dfc359c05 Mon Sep 17 00:00:00 2001 From: noberumotto Date: Sun, 26 Dec 2021 03:08:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E7=9D=A1=E7=9C=A0=E7=9B=91?= =?UTF-8?q?=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Core/Servicers/Instances/Sleepdiscover.cs | 25 +++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/Core/Servicers/Instances/Sleepdiscover.cs b/Core/Servicers/Instances/Sleepdiscover.cs index b3b9a08..bb56928 100644 --- a/Core/Servicers/Instances/Sleepdiscover.cs +++ b/Core/Servicers/Instances/Sleepdiscover.cs @@ -2,6 +2,7 @@ using Core.Event; using Core.Librarys; using Core.Servicers.Interfaces; +using Microsoft.Win32; using System; using System.Collections.Generic; using System.Diagnostics; @@ -32,6 +33,30 @@ namespace Core.Servicers.Instances { this.observer = observer; observer.OnAppActive += Observer_OnAppActive; + SystemEvents.PowerModeChanged += new PowerModeChangedEventHandler(OnPowerModeChanged); + } + + private void OnPowerModeChanged(object sender, PowerModeChangedEventArgs e) + { + switch (e.Mode) + { + case PowerModes.Suspend: + //电脑休眠 + if (status == SleepStatus.Wake) + { + status = SleepStatus.Sleep; + SleepStatusChanged?.Invoke(status); + } + break; + case PowerModes.Resume: + //电脑恢复 + if (status == SleepStatus.Sleep) + { + status = SleepStatus.Wake; + SleepStatusChanged?.Invoke(status); + } + break; + } } private void Observer_OnAppActive(string processName, string description, string file) -- GitLab