Q&A

  • 어플이 실행중 대기모드가 실행되는걸 막을수 없나요
<!--CodeS-->

1 . 메세지를 받아서..

  if (message.Msg = WM_POWER) and (message.WParam = PWR_SUSPENDREQUEST) then
  begin
    message.Result := PWR_FAIL;

  end;

2. 함수 이용..

if (message.Msg = WM_POWER) and (message.WParam = PWR_SUSPENDREQUEST) then
  begin
    SetSystemPowerState(false,false);

  end

<!--CodeE-->

위 두가지 방법을 사용했는데, 제가 코딩을 잘못한건지. 프로그램을 실행시킨후 일정시간 경과후에
대기 모드 상태로 바뀌어서.. client -- server 간 통신을 할수가 없게 되더라고요.
어떻게 하면. 대기 모드 상태로 바뀌는것을 막을수 있는지 힌트를 주셨으면 합니다.
혹.. 레지스트리를 건드려서 해결할수도 있나요?
2  COMMENTS
  • Profile
    최용일 2005.06.02 22:16
    안녕하세요. 최용일입니다.

    WM_POWER대신에 WM_POWERBROADCAST 를쓰세요. WM_POWER는 예전 16비트 시절에 쓰던거라서...

    <!--CodeS-->
    type
        TForm1 = class(TForm)
            procedure WMPOWERBROADCAST(var LwMsg: TWMPower); message WM_POWERBROADCAST;
        end;

    implementation

    procedure TForm1.WMPOWERBROADCAST(var LwMsg: TWMPower);
    const
        PBT_APMQUERYSUSPEND = 0;
    begin
        if LwMsg.PowerEvt = PBT_APMQUERYSUSPEND then
            LwMsg.Result := BROADCAST_QUERY_DENY;
    end;

    <!--CodeE-->

    ^^ 항상 즐코하세요...

  • Profile
    2005.06.04 11:53
    먼저 답변 감사드립니다.
    제가 아직 내공이 부족하여 하나만 알고 둘은 몰랐네요. 알려주셔서 감사합니다.