Newsgroup: it.comp.lang.visual-basic
Titolo: Uccidere applicativo per inattività

Salve,
forse la mia domanda č un pň assurda ma mi scuserete se la faccio lo stesso.
Avrei bisogno di uccidere un applicativo vb se non viene utilizzato per un
certo periodo di tempo esempio 20 minuti.
L'applicativo accede a un db e legge e scrive dati.
Grazie per le eventuali risposte

 L'applicativo accede a un db e legge e scrive dati.
Gli metti un timer con intervallo a piacere (20 sec), e controlli la
differenza di tempo (puoi usare l'API GetTickCount che dà il valore in
millisecondi, su 20 minuti la differenza è di 1200000)oppure usi il datediff
Ciao
--
Timothy Redaelli
timothy.redae...@email.it
------------------------------------------------------------------
Togliere NONSPAMMARE per rispondere

L'applicativo accede a un db e legge e scrive dati.
Io metterei semplicemente un timer il cui conteggio è azzerato ad ogni
KeyUp, KeyDown, MouseUp o MouseDown del Form (sempre che sia uno) che
deve quindi avere il KeyPreview settato a True
-- 
Giovanni "Gyo" Perdicaro
E-Mail: 
gperd...@sicilyonline.it

 ha scritto nel messaggio
news:muteht8aq1987d924...@4ax.com...


 il comando end è il più indicato per forzare la chiusura?
no. è sicuramente meglio scaricare tutti i form e le risorse allocate,
in modo corretto
Ciao
Faber

 Faber
A titolo di QED:
Applicazione VB3, che funzionava con una DLL proprietaria per l'accesso ai
dati. Ne faccio il port in VB6 e cambio la DLL con Access.
Il proramma veniva chiuso, da TUTTI i form, con END!!!!!!
Non me ne preoccupo piu' di tanto perche' sono molto religioso, cosi' faccio
partire il programma su un'ala e una preghiera.
Bene, il programma nel 99% dei casi non si chiudeva. Restava nascosto in
memoria fino al reboot.
Sostituite le End con una funzione personalizzata TerminateAll, che fa piu'
o meno il ciclo di faber che ho snippato via, il programma MAGICAMENTE
scompariva dalla memoria.
Morale della favola: se usate qualunque componente COM, non usate la END. Se
usate dei form, non usate la END. Se usate Visual Basic, non usate la END
:PP
Ciaotutti,
Astericchio

 :PP
l'unico caso in cui userei End è questo (se il prg parte da un Form,
altrimenti basta un Exit Sub)
Private Sub Form_Load()
    If App.PrevInstance Then End
End Sub
Ciao
Faber


No, l'unico caso in cui vanno usati gli End è se programmate in Delphi,
oppure se la vostra app è semza Forms/Oggetti.
Altrimenti:
Private Sub Form_Load()
    If App.PrevInstance Then
        Unload ME
    Else
        ' initiaize app
    end if
End Sub
Ciao


mi pare che in versioni particolari di VB (forse la 5 o la 4) non si
potesse usare Unload Me nel Form_Load(), ma forse mi sbaglio...
Faber

potesse usare Unload Me nel Form_Load(), ma forse mi sbaglio...
Ricordi bene: fino alla 5 vb andava in errore se veniva comandato
l' Unload Me nel Form_Load.
Dalla 6 invece e' un' istruzione valida.
ciao, hal

 
Sei hai piu' form ti consiglio di fare cosi'.
Metti un unico timer sul form principale, con intervallo inpostato, ad esempio, su 1 minuto.
Dichiari in un modulo una variabile globale TempoUltimaAzione As Date.
In ogni form, ogni volta che fai qualcosa che deve azzerare il conteggio, fai TempoUltimaAzione = Now.
Nell'evento Timer controlli la differenza tra TempoUltimaAzione e Now.
Se la differenza supera i 20 min, chiudi l'applicazione.
--
Samuele Battarra
mail server: 
libero.it
account: battarsa