Newsgroup: it.comp.lang.visual-basic
Titolo: Chiusura sistema / applicazione

Buongiorno, ho la necessitą di intercettare l'uscita dalla mia applicazione
VB6 x poter tracciare le uscite su file.
In una condizione normale eseguo l'operazione nell'evento queryunload del
form e va tutto bene.
Il mio problema nasce se l'utente ad applicazione attiva si disconnette o
riavvia il pc o con il task manager chiude. Windows chiude l'applicazione
Vb6.
Ho provato a intercettare l'evento unload, terminate, deactivate ma
l'applicazione non passa da nessuno di questi se windows chiude.
Il Visual Basic 6 invece in una condizione di riavvio chiede prima se si
desidera salvare (l'evento č quindi intercettabile)
Avete dei suggerimenti ?

 Avete dei suggerimenti ?
Non hai detto che usi già la queryunload?
unloadmode:
vbAppWindows
vbAppTaskManager
ciao
ugo

 vbAppTaskManager
Dove vanno indicati ?
Ciao

 chiusa da windows in fase di riavvio del sistema
uhm... quindi dichiari che l'evento queryunload non si verifica se la
chiusura dell'applicazione avviene per la chiusura del sistema operativo?
sono molto, molto perplesso...
--
Salutoni
Sergio

 chiusa da windows in fase di riavvio del sistema
Prima di fare una affermazione del genere, puoi giurare di avere messo un
msgbox nella QueryUnload?
Alberto

 sono molto, molto perplesso...
Anch'io sono perplesso, purtroppo ho messo una msgbox, la show di una form
nel query unload e non ci passa. Ho anche eseguito il tutto in debug
lasciando aperto visual basic e mettendo un break point ma non ci passa.
Alla chiusura del sistema Vb6 chiede di salvare prima di uscire ma
l'applicazione vb6 nulla.

 msgbox nella QueryUnload?
Certo, oltre all'MsgBox ho anche messo un breakpoint ed eseguito il
programma in debug.
Da li non passa


Posta il queryunload.
C'è qualcosa di strano.
Ciao
Alberto
-- 
Rigore è quando arbitro fischia

 C'è qualcosa di strano.
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
   Dim risposta As Integer
   frmRS232.EnablePCMaster False
   Cancel = True
   risposta = MsgBox("Interrompere il rilevamento dati?" _
                     , vbYesNo + vbDefaultButton2 + _
                     vbQuestion + vbSystemModal, _
                     "FINE RILEVAMENTO")
   If risposta = vbYes Then
      If EXIT_Password = "" Then
        blnLoginSucceeded = True
      End If
      If blnLoginSucceeded = False Then
        PwdModo.Show 1
        If blnLoginSucceeded = False Then Exit Sub
      End If
      RegistraUscita
      Cancel = False
   Else
            frmRS232.EnablePCMaster True
   End If
End Sub

    frmRS232.EnablePCMaster False
scommetto che se remmi la precedente, il msgbox appare!
ciao
ugo

 scommetto che se remmi la precedente, il msgbox appare!
mi sa che hai perso la scommessa perchè non funziona comunque

 C'è qualcosa di strano.
Il QueryUnload l'ho postato, nell'altro messaggio, comunque:
- pro un progetto vb6 nuovo (exe standard)
- form vuoto
- nel queryunload metto una msgbox
- eseguo il progetto
- AVVIO - Chiudi sessione - Disconnetti (o riavvia il sistema)
Vb6 chiede di salvare mentre non viene visualizzata nessuna msgbox

 Vb6 chiede di salvare mentre non viene visualizzata nessuna msgbox
e cosa succede se, invece di farlo andare dall'interno dell'ide, compili e
lanci l'exe?
--
Salutoni
Sergio

 typed:

Appunto io ho provato con una disconnessione dell'utente e l'exe mi sputa
fuori il msgbox... con l'ide non ho neanche provato perchč non aveva alcun
senso! ;-)


Lanciando L'Exe si comporta diversamente, viene visualizzata la msgbox ma
viene comunque buttata giů dopo 5-10 Sec. (il sistama non attende che venga
risposto alla msgbox

 typed:

A me chiede se terminare l'operazione dopo un po' di secondi...

> A me chiede se terminare l'operazione dopo un po' di secondi...
Giusto, non avevo notato che il termina applicazione si blocca e non la
chiude brutalmente.
Questo mi basta x fare il mio log di uscita in ogni condizione.
Ringrazio tutti x la disponibilità
P.S. x chi avesse letto anche il mio altro post sull'errore 80010108 il log
mi serve x questo motivo visto che da una prima analisi tale errore sembra
generato dal sistema operativo stesso che in alcune condizioni riesegue
l'esecuzione automatica delle applicazioni

 uscire ma l'applicazione vb6 nulla.
Quella tua frase "ho anche eseguito il tutto in debug" faceva pensare che il
problema si presentasse in esecuzione da exe, e che solo come tentativo tu
avessi provato in debug, per cui ho escluso la cosa più logica, ossia che tu
fossi in debug.
Ciao
Alberto