[英]Monitor battery charge with Win32 API
我正在嘗試編寫一個小應用程序來監控筆記本電池的剩余電量,我想知道我可以使用哪個 Win32 函數來完成它。
對於 Vista 及更高版本,您可以使用RegisterPowerSettingNotification
對於較早的功能看電源管理功能在MSDN頁面的這一部分“電源管理功能:Windows Server 2003和此前”
您可以在codeproject上查看Vista 方法的示例代碼。
我推薦使用 Win32 GetSystemPowerStatus函數。 代碼片段:
int getBatteryLevel()
{
SYSTEM_POWER_STATUS status;
GetSystemPowerStatus(&status);
return status.BatteryLifePercent;
}
以下鏈接中有一篇非常詳細的文章,以及一個示例項目(在 Win8.1 上測試過): http : //www.codeproject.com/Articles/15829/Vista-Goodies-in-C-Monitoring-計算機電源
您可以監聽PBT_APMPOWERSTATUSCHANGE
。 此事件在以下 3 種情況下觸發。
理想的方法是在接收到此事件時調用GetSystemPowerStatus() ,而不是連續輪詢。 該BatteryLifePercent
成員SYSTEM_POWER_STATUS
會給電池壽命百分比。
對於此事件,您必須處理WM_POWERBROADCAST
消息。 對於PBT_APMPOWERSTATUSCHANGE
wParam 將是PBT_APMPOWERSTATUSCHANGE
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.