Muito obrigado José Nilton Pace, Desta forma é muito mais eficiente.
--- Em delphi-br@yahoogrupos.com.br, "JNP - NetSite" <j...@...> escreveu > > Olá Wandarlei, tenho anotado aqui um pouco diferente, testa aí... > Quando o Windows está finalizando, ele envia a mensagem WM_QueryEndSession > para todas aplicações abertas. Para detectar (e impedi-la), deve-se definir > um manipulador para esta mensagem. Ponha esta definição na seção privada de > seu form: > procedure WMQueryEndSession(var Msg : TWMQueryEndSession); message > WM_QueryEndSession; > > E ponha este método na seção implementation da unit: > > procedure TForm1.WMQueryEndSession(var Msg : TWMQueryEndSession); > begin > if MessageDlg('Fecha o Windows ?', mtConfirmation, [mbYes,mbNo], 0) = mrNo > then > Msg.Result := 0 > else > Msg.Result := 1; > end; > > []s, José Nilton Pace (JNP Software)... >