'WM_POWERBROADCAST'에 해당되는 글 1건
Windows System에서 전력관리(Power management)를 위해 사용되는 API들이 있다. 지금 보게 될 'PBT_APMPOWERSTATUSCHANGE '라는 녀석도 그에 속한다.
'PBT_APMPOWERSTATUSCHANGE'는 사용하는 기계의 전원상태(power status)의 변화가 생길때 Windows system에서 어플리케이션에 전달(broadcast)되는 event 이다.
예를들어 노트북에서 AC전원을 사용하다가 전원코드를 뽑아서 배터리의 전원을 사용한다던지, 아님 그 반대든지.. 뭐 그런경우 시스템에서는 현재 사용하는 기계의 전원상태의 변화가 생김을 인지하고 이 이벤트를 날려준다(broadcasting).
이 이벤트는 'WM_POWERBROADCAST'라는 메시지를 통해서 어플리케이션에 전달되고, 해당하는 이벤트는 메시지의 'wParam'을 통해 전달된다.
사용방법은.. 대충 이렇다.
음.. Windows API를 예로들어 설명한다.(다른건 할줄몰라서.. 이것도.. 잘은.. -_-)
{
HDC hdc;
switch (iMessage) {
...
case WM_POWERBROADCAST:
switch(wParam){
case PBT_APMPOWERSTATUSCHANGE:
MessageBox(hWnd, TEXT("test"), TEXT("test"), MB_OK);
return 0;
}
return 0;
...
}
return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}
추가로 WM_POWERBROADCAST 메시지의 wParam은 다음과 같은 것들이 있다.
Event |
Meaning |
PBT_APMBATTERYLOW |
Battery power is low |
PBT_APMOEMEVENT |
OEM-defined event occurred |
PBT_APMPOWERSTATUSCHANGE |
Power status has changed |
PBT_APMQUERYSUSPEND |
Request for permission to suspend |
PBT_APMQUERYSUSPENDFAILED |
Suspension request denied |
PBT_APMRESUMEAUTOMATIC |
Operation resuming automatically after event |
PBT_APMRESUMECRITICAL |
Operation resuming after critical suspension |
PBT_APMRESUMESUSPEND |
Operation resuming after suspension |
PBT_APMSUSPEND |
System is suspending operation |
여기를 참고하면 될 듯 하다.
WM_POWERBROADCAST : http://msdn.microsoft.com/en-us/library/aa373247.aspx
PBT_APMPOWERSTATUSCHANGE : http://msdn.microsoft.com/en-us/library/aa372715(VS.85).aspx
'Programmings > Windows Programming' 카테고리의 다른 글
VS2005 응용프로그램 에러.. "응용 프로그램 구성이 올바르지 않기 때문에 이 응용 프로그램을 시작하지 못했습니다..." (3) | 2008.09.08 |
---|---|
전원 상태를 알아오는 SYSTEM_POWER_STATUS struct (0) | 2008.09.06 |
GetCurrentDirectory()를 이용한 Windows에서 현재경로 받아오기.. (1) | 2008.08.20 |
Windows 프로그램을 시작 프로그램으로 등록하기 (0) | 2008.08.19 |
GetMessage() 와 PeekMessage() (1) | 2008.08.11 |