W8服务的已连接待机通知

Nez*_*ezz 9 c++ windows service standby

我有一个在Windows 8(和8.1)上运行的C++开发的服务.如何才能知道系统已进入Connected Standby?

由于这是一个服务,它没有窗口,我应该使用PowerRegisterSuspendResumeNotification,但它似乎没有工作.有谁知道我怎么得到这样的通知?

Nez*_*ezz 6

我已经联系了微软的技术支持。这是他们的回答:

ConnectedStandby 进入/退出没有直接通知,但您可以只使用监视器开/关通知,因为 ConnectedStandby 与支持 AOAC 的系统上的屏幕关闭同义(但不是在旧系统上,AOAC 功能可以通过获取SystemPowerCapabilities 使用 CallNtPowerInformation 并查看 SYSTEM_POWER_CAPABILITIES 结构的 AoAc 值)。

要获取监视器开/关通知,您可以使用 RegisterPowerSettingNotification 并使用 GUID_MONITOR_POWER_ON 电源设置 GUID。

看起来只有通过监听屏幕开/关事件来解决这个问题。