我需要检测现代待机中的电源状态变化。在我的特定用例中,我尝试在 Microsoft Surface Pro 上检测(并做出反应)S0 低功耗(睡眠)。
到目前为止,我已经在普通控制台应用程序(VS 2019)中尝试了这些方法:
SystemEvents.PowerModeChanged。
虽然我可以让这些与我的笔记本电脑很好地配合使用,但我似乎无法使用这些类中的任何一个来捕获 Surface Pro 使用的 S0 低功耗事件。
如果您点击 ManagementEventWatcher 的链接,我已经尝试了确切的代码,但在 Surface Pro 上调用睡眠时甚至没有得到“EventArrived”。
有什么想法和/或指示吗?
编辑: 我猜想在 WMI 中的某个地方可以检测到 S0 状态。也许WMI的一些专家知道?例如。 ManagementEventWatcher 使用什么类名和范围...
从windows 8开始,有一个 PowerRegisterSuspendResumeNotification() API,虽然是c++,估计c#中应该也有类似的api