windows종료시 App를 종료하고 싶은데 잘 안되네요.
제가 두가지 방법으로 해보았습니다.
1.Application.OnMessage이용
- FormCreate시
Application.OnMessage:=AppMessage
- procedure AppMessage(msg:TMsg;var Handled:Boolean);
begin
case msg.Message of
WM_QUERYENDSESSION:begin
close;
inherited;
end;
end;
end;
위의 방법을 사용하면 메세지를 받지 못합니다.
2.Form의 Message를 이용
- 선언
procedure MsgHookProc(msg:TMessage);message WM_QUERYENDSESSION;
- 정의
procedure MsgHookProc(msg:TMessage);
begin
Close;
inherited;
end;
위와 같은 방법은 form이 떠 있으면 되는데 작업표시줄에 Minimize되어 있으면
======================================================
안됩니다.
========
왜 그럴까요?
그거 사용해보세요.
전 잘되는데...
신상철 께서 말씀하시기를...
> windows종료시 App를 종료하고 싶은데 잘 안되네요.
> 제가 두가지 방법으로 해보았습니다.
> 1.Application.OnMessage이용
> - FormCreate시
> Application.OnMessage:=AppMessage
> - procedure AppMessage(msg:TMsg;var Handled:Boolean);
> begin
> case msg.Message of
> WM_QUERYENDSESSION:begin
> close;
> inherited;
> end;
> end;
> end;
> 위의 방법을 사용하면 메세지를 받지 못합니다.
> 2.Form의 Message를 이용
> - 선언
> procedure MsgHookProc(msg:TMessage);message WM_QUERYENDSESSION;
> - 정의
> procedure MsgHookProc(msg:TMessage);
> begin
> Close;
> inherited;
> end;
> 위와 같은 방법은 form이 떠 있으면 되는데 작업표시줄에 Minimize되어 있으면
> ======================================================
> 안됩니다.
> ========
> 왜 그럴까요?