문제

노트북이 AC 전원에 연결되어 있는지 확인하려고합니다.

아래에서 실행되는 OS IM은 Winpe입니다. 내 앱은 기본 C ++로 작성되었습니다.

Win32_Battery를 사용한 WMI 쿼리는 지원되지 않으며 GetSystemPowerstatus API는 항상 ACLinestatus (AC 전원 실행 여부)에 대해 '1'을 반환합니다.

어떤 아이디어?

추가 조사 : Power_Information_Level :: SystemBatteryState를 사용하여 API 'CallntPowerInformation'을 사용해 보았습니다. System_battery_status 구조 요소 Aconline도 전원 공급 장치 상태에 관계없이 1을 반환합니다. 아마도 동일한 시스템 레벨 코드를 호출하지만 여기에 추가 할 것이라고 생각했습니다.

도움이 되었습니까?

해결책

나는 내 자신의 질문에 대답 할 수 있었고 결국 매우 간단한 것으로 판명되었습니다.

Winpe에서는 배터리가 인식되지 않았기 때문에 다음 Noddy 스크립트가 실행될 때 NULL을 반환했습니다.

strcomputer = "." set objwmiservice = getObject ( "winmgmts : "& strcomputer & " root cimv2") set colitems = objwmiservice.execquery ( "win32_battery에서"select * ", 48). echo objitem.caption 다음에

PE 이미지 ( windows inf battery.inf)에서 배터리 장치 드라이버를 찾았으므로 일단 설치 한 경우 배터리가 인식되고 위의 스크립트가 예상 값을 반환합니다. IE BatteryStatus = 2 (시스템은 AC에 액세스 할 수 있으므로 배터리가 방전되지 않음) 또는 BatteryStatus = 1 (배터리가 연결되지 않음).

운전자는 PE 이미지 자체에 설치하거나 주문형으로로드 할 수 있습니다. 즉, drvload

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top