<!--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 간 통신을 할수가 없게 되더라고요.
어떻게 하면. 대기 모드 상태로 바뀌는것을 막을수 있는지 힌트를 주셨으면 합니다.
혹.. 레지스트리를 건드려서 해결할수도 있나요?
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-->
^^ 항상 즐코하세요...