程序中用到了indy udp和tcp控件,只要程序没退出,就无法关闭windows。对queryendsession消息处理后,98下可正常关机,但2000/xp下无法正常关闭,要关两下,第一次只会关闭程序。why?
处理方法如下:定义:
procedure shutdown(var Message: TMessage); message WM_QUERYENDSESSION ;实现:
procedure shutdown(var Message: TMessage);
begin
message.result:=1;//如果返回0,表明不能关闭
application.terminate;//或其它退出代码
end;
处理方法如下:定义:
procedure shutdown(var Message: TMessage); message WM_QUERYENDSESSION ;实现:
procedure shutdown(var Message: TMessage);
begin
message.result:=1;//如果返回0,表明不能关闭
application.terminate;//或其它退出代码
end;
procedure WMQueryEndsession(Var Msg:TMessage);Message WM_QueryEndSession;procedure Tclient.WMQueryEndsession(var Msg: TMessage);
begin
Msg.Result := 1;
close; //将自己的程序关闭
end;