标题: (20元)如何检测笔记当前接通的是交流电还是电池 [打印本页]
作者: 电动小马达 时间: 2017-11-29 01:25 标题: (20元)如何检测笔记当前接通的是交流电还是电池
本帖最后由 电动小马达 于 2017-11-29 12:56 编辑
检测笔记本供电是交流电还是电池
如果是交流电,无操作
如果是电池,倒计时10分钟,之后进入休眠模式。
在这10分钟内如果恢复了交流电,那么取消倒计时,重新检测是交流电还是电池。
作者: ivor 时间: 2017-11-29 11:42
用到了winAPI所以有附件
文件列表:↓
程序返回值类型: {0:电源断电; 1:电源正常; 255:电源状态未知}- @echo off&SETLOCAL ENABLEDELAYEDEXPANSION
- rem 根据返回值判断是否接电,1为接电,0为未接电
- :s
- ping 127.1 -n 2 >nul
- ACLineStatus
- echo 返回值:!errorlevel! 已接通电源
- if %errorlevel% equ 1 goto :s
- for /l %%a in (1,1,600) do (
- ping 127.1 -n 2 >nul
- ACLineStatus
- if !errorlevel! equ 1 goto :s
- cls
- echo 返回值:!errorlevel! 未接电源
- set /p a=倒计时:<nul
- set /a t=600-%%a
- echo !t!
- )
- rem 休眠
- rundll32.exe powrProf.dll,SetSuspendState
复制代码
作者: 电动小马达 时间: 2017-11-29 13:20
回复 2# ivor
附件没看见,大佬
作者: ivor 时间: 2017-11-29 13:21
回复 3# 电动小马达
链接:https://pan.baidu.com/s/1qXO00o8 密码:6vp2
作者: 电动小马达 时间: 2017-11-29 13:26
回复 4# ivor
谢谢,但是我现在在巴基斯坦,不能上百度云,麻烦发到我邮箱吧,1181788708@qq.com
作者: 电动小马达 时间: 2017-11-29 13:39
回复 4# ivor
感谢,但是这边仅仅显示电源是否接通,拔掉电源没有倒计时,再接回电源没有关于倒计时终止的显示,不知道这个功能没有添加还是仅仅没有显示
作者: 电动小马达 时间: 2017-11-29 13:42
回复 4# ivor
测试完成,功能正常,邮件回复你了
作者: ivor 时间: 2017-11-29 13:59
回复 6# 电动小马达
倒计时的功能2楼已经更新
作者: codegay 时间: 2017-11-29 17:37
优化- WMIC Path Win32_Battery Get BatteryStatus
复制代码
Check if computer is plugged into AC power in batch file
https://stackoverflow.com/questi ... power-in-batch-file
作者: hlzj88 时间: 2017-11-29 18:20
对于易停电地区,在第二个返回值前加个主板响,及时提醒更好些。
作者: codegay 时间: 2017-12-1 20:06
本帖最后由 codegay 于 2017-12-1 20:08 编辑
我也试着用nim写了一个- type
- SYSTEM_POWER_STATUS* {.final, pure.} = object
- ACLineStatus*: int8
- BatteryFlag*: int8
- BatteryLifePercent*: int8
- Reserved1*: int8
- BatteryLifeTime*: int32
- BatteryFullLifeTime*: int32
-
- var test:SYSTEM_POWER_STATUS
-
- proc getPowerStatus*(stat:var SYSTEM_POWER_STATUS):int {.stdcall, dynlib:"kernel32",
- importc:"GetSystemPowerStatus", discardable.}
-
- test.getPowerStatus
- echo test
- echo "电池电量:",test.BatteryLifePercent
-
- if test.ACLineStatus == 0:
- echo "笔记本,断电了"
- elif test.ACLineStatus == 1:
- echo "笔记本,接通外接电源中"
- else:
- echo "我觉得我可能是运行在一台台式电脑上了。"
复制代码
- 输出:
- (ACLineStatus: 1, BatteryFlag: 1, BatteryLifePercent: 99, Reserved1: 0, BatteryLifeTime: -1, BatteryFullLifeTime: -1)
- 电池电量:99
- 笔记本,接通外接电源中
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |