如何从Windows内核获取电池电量级别的通知?

时间:2012-05-10 11:48:08

标签: c windows winapi power-management

我需要在C中编写代码,以便在笔记本电脑电量不足时指示并通知我。我知道我可以使用以下内容:

BOOL WINAPI GetSystemPowerStatus(
    __out  LPSYSTEM_POWER_STATUS lpSystemPowerStatus
    );

但我想向操作系统发送一个功能,当电量不足时会通知我。

我希望代码中有一个“空”循环,当电池电量不足时,代码会向我发送通知(printftrace)。

我想我应该使用内核函数,但我找不到它们

2 个答案:

答案 0 :(得分:4)

我从未使用过这些API,但您所寻找的似乎是WM_POWERBROADCAST

wParam有各种值,您可以在收到该消息时进行检查,例如PBT_APMBATTERYLOW。当您收到包含相应WM_POWERBROADCAST值的wParam邮件时,请从此处致电GetSystemPowerStatus()

答案 1 :(得分:1)

在内核中,有一种单独的方法来处理电源状态更新。有关信息,请参阅here

  

如果您正在编写可能受电源状态影响的驱动程序   更改,您必须能够处理以下类型   驱动程序代码中的信息: