'GetSystemPowerStatus'에 해당되는 글 1건

  1. 2008.09.06 전원 상태를 알아오는 SYSTEM_POWER_STATUS struct
2008. 9. 6. 10:24

전원 상태를 알아오는 SYSTEM_POWER_STATUS struct



'SYSTEM_POWER_STATUS' 는 Windows System에서 전력관리에 사용되는 구조체이다.

현재 동작하는 Windows System의 전원상태에 대한 정보를 담고 있다고 보면 된다. 전원에 대한 상태라는 것은 현재 사용하고 있는 전원이 AC인지 아니면 배터리를 사용하고 있는지에 대한 정보, 또 배터리를 사용하고 있다면 남아있는 배터리의 양이라든지 life time이라든지에 대한 정보를 말한다.

이녀석에 대한 정보를 가져오기 위해서는 'GetSystemPowerStatus()'라는 함수를 사용하게 된다. GetSystemPowerStatus()함수의 인자로 SYSTEM_POWER_STATUS가 사용되고, 현재 전원에 대한 상태정보를 인자로 사용된 이 구제체로 복사를 해오는 것이다.

현재 전원에 대한 상태정보를 알기 위해서 이 구조체를 사용하기만 하면된다.
Syntax를 보면 다음과 같다.
typedef struct _SYSTEM_POWER_STATUS {
BYTE ACLineStatus;
BYTE BatteryFlag;
BYTE BatteryLifePercent;
BYTE Reserved1;
DWORD BatteryLifeTime;
DWORD BatteryFullLifeTime;
} SYSTEM_POWER_STATUS, *LPSYSTEM_POWER_STATUS;
ACLineStatus
: AC power의 상태를 말한다. (0 : Offline, 1 : Online, 255 : Unknown status)

BatteryFlag
: 배터리의 charge status를 나타낸다.
  1    : High-the battery capacity is at more than 66 %
  2    : Low—the battery capacity is at less than 33 %
  4    : Critical—the battery capacity is at less than 5 %
  8    : Charging
  128 : No system battery
  255 : Unknown status—unable to read the battery flag information

BatteryLifePercent
남아있는 배터리의 양을 %로 표현한다. 0 ~ 100 사이의 값으로 표현되고, 상태를 알 수 없으면 255.

Reserved1
Reserved. must be zero

BatteryLifeTime
The number of seconds of battery life remaining, or -1 if remaining seconds are unknown.

BatteryFullLifeTime
The number of seconds of battery life when at full charge, or -1 if full battery lifetime is unknown.

참고 : MSDN