본문 바로가기

Delphi/간단하게

간단하게 PC의 전원상태 체크하기

PC의 전원 상태를 체크하여 절전모드 이후 처리해야 될 로직이 있어 찾아보니,

친절하게 윈도우에 관련 API가 있어 가져와봤습니다.

type
  TForm1 = class(TForm)
    ..
  private
    procedure WindowPowerState(var AMsg: TMesage); message WM_POWERBROADCAST;
    ..
  public
    ..
  end;
procedure TForm1.WindowPowerState(var AMsg: TMessage);
begin
  case AMsg.WParam of
    //AC, DC등 전원방식이 변경 되었을 때
    PBT_APMPOWERSTATUSCHANGE: begin
    end;

    //윈도우가 절전상태에서 돌아왔을 때
    PBT_APMRESUMEAUTOMATIC: begin
    end;

    //윈도우가 재실행 됐을 때
    PBT_APMRESUMESUSPEND: begin
      
    end;

    //윈도우가 정지에 들어갔을 때
    PBT_APMSUSPEND: begin
    end;

    //전원 설정(정책)이 변경되었을 때
    PBT_POWERSETTINGCHANGE: begin
    end;
  end;
end;
반응형