Fechar a aplicação antes de desligar o windows.

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

edmarfrazao
Usuário Nível 3
Usuário Nível 3
Mensagens: 185
Registrado em: 06 Dez 2005 11:16

Fechar a aplicação antes de desligar o windows.

Mensagem por edmarfrazao »

Pessoal a função HB_PushSignalHandler, prermite identificar quando o usuario solicita a finalização da aplicação pelo X ou quando solicita o desligar o windows.
Porem o codigo abaixo so funciona se não usar wvw ou wvwtools.

Se usar a wvwtools não funciona aqui comigo.

Alguem poderia testar.

o exemplo grava um arquivo txt no c:\msg.txt para identificar que funcionou.
se usar o fechar do X funciona , so não funciona se der logoff ou desligar o windows.

Código: Selecionar todos


#include "hbserv.ch"
#include "c:\wvwtools\include\wvwtools.ch"

procedure main()
   ferase('c:\msg.txt')
   wvw_SETFONT(, 'Courier New'    , 29, 15, 0 ,255)
   wvw_setcodepage(,255)

   ? 'iniciou'
   HB_PushSignalHandler( HB_SIGNAL_ALL, "Handle" )
   While .t.
       a:=inkey(0)
       if lastkey()=27
          EXIT
       ENDIF
   end
   ? 'Fim normal'
   
   
   

 Function Handle( nSignal, aParams )
   Teller( nSignal, aParams)
RETURN HB_SERVICE_HANDLED

PROCEDURE Teller(nSignal, aParams)
   close all   // fechar todas as tabelas
   tone(500)
   tone(500)
   memowrit('c:\msg.txt','finalizou o sistema corretamente')   
RETURN


// se usar o exite funciona quando fecha no X
// mas não funciona quando desliga o computador
*exit function teste
*  tone(500)
*return nil

                                        
Responder