2009-06-16 5 views
2

랩톱이 AC 전원에 연결되어 있는지 확인하려고합니다.WinPE에서 AC 전원 연결 감지?

실행중인 OS Im은 WinPE입니다. 내 응용 프로그램이 네이티브 C++로 작성되었습니다.

Win32_Battery를 사용하는 WMI 쿼리는 지원되지 않으며 GetSystemPowerStatus API는 (AC 전원으로 실행 중인지 아닌지) ACLineStatus에 대해 항상 '1'을 반환합니다.

아이디어가 있으십니까?

추가 조사 : API 'CallNtPowerInformation'을 POWER_INFORMATION_LEVEL :: SystemBatteryState로 시도했습니다. SYSTEM_BATTERY_STATUS 구조체 요소 AcOnLine은 전원 공급 장치 상태에 관계없이 1을 반환합니다. 아마 그냥 같은 시스템 레벨 코드를 호출하지만 여기에 그것을 추가 할 것이라고 생각했습니다.

답변

1

나는 내 자신의 질문에 대답 할 수 있었고 결국에는 매우 간단하다는 것이 입증되었습니다. 배터리가 인식되지 않았기 때문에 실행될 때

은을 WinPE에서 다음과 같은 검은 제비 갈매기 스크립트는 null을 반환 : "."

strComputer에 = 세트 objWMIService = GetObject를 ("winmgmts : \"& & strComputer에 "\ 루트 \의 CIMV2") 세트 colItems = objWMIService.ExecQuery ("SELECT * Win32_Battery FROM",, 48) colItems Wscript.Echo objItem 각 objItem 들어 .BatteryStatus Wscript.Echo objItem.Caption 다음 I 인식되는 일단 설치된 배터리 결과 내 PE 이미지 전지 장치 드라이버 (윈도우 \ INF \ battery.inf \)와 복귀 상기 스크립트 발견

예상 값. 즉 BatteryStatus = 2 (시스템이 AC에 액세스하여 배터리가 방전되지 않음) 또는 BatteryStatus = 1 (배터리가 방전 중입니다. 즉 AC가 연결되지 않았습니다).

드라이버는 PE 이미지 자체에 설치하거나 필요할 때로드 할 수 있습니다. 즉 drvload