在WinRT中,有没有办法获取有关电池的信息?即桌面通知区域中显示的类似信息:剩余时间,剩余百分比,剩余百分比等
答案 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"