在 WinRT 中,有没有办法获取有关电池的信息?即桌面通知区域中显示的类似信息:剩余时间、剩余百分比、剩余百分比等。
问问题
1188 次
2 回答
3
WinRT 中没有可用的 API - 我大约一个月前一直在调查这个问题。
正如 Robin Yang 在 MSDN 讨论中提到的:
GetSystemPowerStatus API用于检索系统的电源状态。该状态指示系统是使用交流电源还是直流电源运行,电池当前是否正在充电,以及电池的剩余寿命。
它似乎可以满足您的需求。但是,此 API 适用于“仅桌面应用程序”。
于 2012-11-05T08:24:14.717 回答
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"
于 2014-02-18T23:47:22.543 回答