首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在WinPE中检测交流电源连接?

在WinPE中检测交流电源连接?
EN

Stack Overflow用户
提问于 2009-06-16 14:07:17
回答 1查看 2.2K关注 0票数 2

我在试着确定笔记本电脑是否连接到了交流电源。

运行Im的操作系统是WinPE。我的应用程序是用原生C++编写的。

不支持使用Win32_Battery的GetSystemPowerStatus查询,并且对于ACLineStatus (无论是否使用交流电源运行),WMI API始终返回“1”。

有什么想法吗?

附加调查:我刚刚在POWER_INFORMATION_LEVEL::SystemBatteryState中尝试了'CallNtPowerInformation‘接口。无论电源状态如何,SYSTEM_BATTERY_STATUS结构元素AcOnLine也会返回1。可能只是调用相同的系统级代码,但我认为我应该在这里添加它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-07-10 14:30:53

我设法回答了我自己的问题,最后证明它很简单。

在WinPE中,以下节点脚本在执行时返回null,因为无法识别电池:

strComputer = ".“Set objWMIService = GetObject("winmgmts:\“& strComputer & "\root\CIMV2") Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Battery",,48) For Each objItem in colItems Wscript.Echo objItem.BatteryStatus Wscript.Echo objItem.Caption Next

我在我的PE镜像(\windows\inf\battery.inf)中发现了一个电池设备驱动程序,它一旦安装,电池就会被识别出来,上面的脚本会返回预期值。即BatteryStatus =2(系统可接入AC,因此没有电池正在放电)或BatteryStatus =1(电池正在放电,即AC未连接)。

驱动程序可以安装在PE镜像本身中,也可以按需加载。即drvload

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1001719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档