WinRT:获取电池信息?

时间:2012-11-05 02:15:56

标签: windows-runtime

在WinRT中,有没有办法获取有关电池的信息?即桌面通知区域中显示的类似信息:剩余时间,剩余百分比,剩余百分比等

2 个答案:

答案 0 :(得分:3)

WinRT中没有可用的API - 大约一个月前我一直在研究这个问题 正如Robin Yang在MSDN讨论中提到的那样:

  

GetSystemPowerStatus API用于检索电源的状态   系统。状态指示系统是在AC还是DC上运行   电源,电池是否正在充电,以及电池多少   生命依旧。

     

它似乎可以满足您的需求。但是,此API适用于   “仅限桌面应用”。

答案 1 :(得分:0)

很遗憾你无法访问这些信息,也许当前在计划任务中将状态写入本地存储是唯一的选择: - (

我不认为这是一种非常用户友好的方式,即使你可以通过商店认证。

FOR /f %i IN ('whoami') DO set userId=%i    
FOR /f %i IN ('dir /s/b %localappdata%\packages\\localcache ^| find "MyBatteryApp"') DO set appFolder=%i    
echo Return = WScript.CreateObject("WScript.Shell").Run("cmd /c ""WMIC PATH Win32_Battery Get EstimatedChargeRemaining  > %appFolder%\MyBatteryApp.txt""", 0, true) > %appFolder%\battery.vbs 
echo ^<?xml version="1.0" encoding="UTF-16"?^>^<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task"^>^<Triggers^>^<TimeTrigger^>^<Repetition^>^<Interval^>PT15M^</Interval^>^<StopAtDurationEnd^>false^</StopAtDurationEnd^>^</Repetition^>^<StartBoundary^>2014-01-01T00:00:00^</StartBoundary^>^</TimeTrigger^>^<SessionStateChangeTrigger^>^<StateChange^>SessionUnlock^</StateChange^>^<UserId^>%userId%^</UserId^>^</SessionStateChangeTrigger^>^</Triggers^>^<Settings^>^<DisallowStartIfOnBatteries^>false^</DisallowStartIfOnBatteries^>^</Settings^>^<Actions^>^<Exec^>^<Command^>wscript^</Command^>^<Arguments^> //B //nologo %appFolder%\battery.vbs^</Arguments^>^</Exec^>^</Actions^>^</Task^> > %tmp%\batterySetting.xml
schtasks /create /tn "MyBatteryApp" /xml "%tmp%\batterySetting.xml"