WIN_POWERBROADCAST 메시지는 WM_POWERBROADCAST 메시지와 관련이 있으며,
이 메시지는 시스템 전원 상태가 변경될 때 운영 체제에서 애플리케이션으로 브로드캐스트됩니다.
const
WM_POWERBROADCAST = $0218;
WM_POWERBROADCAST는 Windows API에서 정의된 상수로,
시스템 전원 이벤트가 발생할 때 애플리케이션의 WndProc 메서드로 전달됩니다.
파라미터
wParam: 이 파라미터는 전원 관리 이벤트의 종류를 나타냅니다. 아래는 주요한 값들입니다:
- PBT_APMSUSPEND: 시스템이 절전 모드로 들어가려 할 때.
- PBT_APMRESUMEAUTOMATIC: 시스템이 절전 모드에서 자동으로 복구될 때.
- PBT_APMRESUMESUSPEND: 시스템이 절전 모드에서 사용자 입력으로 복구될 때.
- PBT_POWERSETTINGCHANGE: 전원 설정이 변경될 때.
lParam: 이 파라미터는 추가적인 정보를 포함하며, 이벤트에 따라 다른 구조체로 해석될 수 있습니다.
procedure TForm1.WndProc(var Msg: TMessage);
begin
if Msg.Msg = WM_POWERBROADCAST then
begin
case Msg.WParam of
PBT_APMSUSPEND:
ShowMessage('System is going to suspend.');
PBT_APMRESUMEAUTOMATIC:
ShowMessage('System resumed automatically.');
PBT_APMRESUMESUSPEND:
ShowMessage('System resumed from suspend.');
PBT_POWERSETTINGCHANGE:
ShowMessage('Power setting changed.');
end;
end;
inherited WndProc(Msg);
end;
procedure WMPowerBroadcast(var Msg: TMessage); message WM_POWERBROADCAST;
procedure TForm1.WMPowerBroadcast(var Msg: TMessage);
begin
case Msg.WParam of
PBT_APMQUERYSUSPEND:
begin
// 절전 모드로 들어가기 전 처리
ShowMessage('System is about to enter sleep mode.');
Msg.Result := BROADCAST_QUERY_DENY; // 이 값을 반환하면 절전 모드를 거부할 수 있음
end;
PBT_APMSUSPEND:
begin
// 절전 모드로 들어갔을 때 처리
ShowMessage('System is in sleep mode.');
end;
PBT_APMRESUMESUSPEND:
begin
// 절전 모드에서 깨어났을 때 처리
ShowMessage('System resumed from sleep mode.');
end;
end;
end;
- 출처 : 우리의 친구 chatGPT
'공부방 > Delphi' 카테고리의 다른 글
[DB2] 입력 데이터로 Insert / Update 실행 (0) | 2024.02.19 |
---|---|
[델파이] 특정프로세스 쓰레드 개수(Thread Count) 조회 (0) | 2023.12.28 |
[델파이] 투명 Panel 만들기 (0) | 2023.11.07 |
[델파이] DBGrid Column Width 자동 설정 (0) | 2021.01.28 |
[델파이] 클래스명으로 폼 찾기(체크) (0) | 2019.06.10 |