Newsgroup: it.comp.appl.access
Titolo: uscita da applicazione dopo inattività

capita spesso che mi lasciano aperta l'applicazione, con problemi di
privacy, ma sopratutto di backup falsati dai files aperti.
Mi serve un suggerimento per far chiudere l'applicazione dopo un tot di
minuti di inattivitą.
Grazie e buona giornata a tutti del Ng!


Sub IdleTimeDetected(ExpiredMinutes)
         'Dim Msg As String
         'Msg = "No user activity detected in the last "
         'Msg = Msg & ExpiredMinutes & " minute(s)!"
         'MsgBox Msg, 48
        DoCmd.Close acForm, "velinavendite_storico"
        DoCmd.Close acForm, "velinavendite"
        DoCmd.Close acForm, "gestionestampe"
End Sub
Sub Form_Timer()
         ' IDLEMINUTES determines how much idle time to wait for before
         ' running the IdleTimeDetected subroutine.
         Const IDLEMINUTES = 1
         Static PrevControlName As String
         Static PrevFormName As String
         Static ExpiredTime
         Dim ActiveFormName As String
         Dim ActiveControlName As String
         Dim ExpiredMinutes
         On Error Resume Next
         ' Get the active form and control name.
         ActiveFormName = 
Screen.ActiveForm.name
         If err Then
            ActiveFormName = "No Active Form"
            err = 0
         End If
         ActiveControlName = 
Screen.ActiveControl.name
            If err Then
            ActiveControlName = "No Active Control"
            err = 0
         End If
         ' Record the current active names and reset ExpiredTime if:
         '    1. They have not been recorded yet (code is running
         '       for the first time).
         '    2. The previous names are different than the current ones
         '       (the user has done something different during the timer
         '        interval).
         If (PrevControlName = "") Or (PrevFormName = "") _
           Or (ActiveFormName <> PrevFormName) _
           Or (ActiveControlName <> PrevControlName) Then
            PrevControlName = ActiveControlName
            PrevFormName = ActiveFormName
            ExpiredTime = 0
         Else
            ' ...otherwise the user was idle during the time interval, so
            ' increment the total expired time.
            ExpiredTime = ExpiredTime + Me.TimerInterval
         End If
         ' Does the total expired time exceed the IDLEMINUTES?
         ExpiredMinutes = (ExpiredTime / 1000) / 60
         If ExpiredMinutes >= IDLEMINUTES Then
            ' ...if so, then reset the expired time to zero...
            ExpiredTime = 0
            ' ...and call the IdleTimeDetected subroutine.
            IdleTimeDetected ExpiredMinutes
         End If
      End Sub
-- 
_ _
Ciao
MAssimiliano Amendola            
www.accessgroup.it
Cisa - Conferenza Italiana per Sviluppatori Access
Info:  
www.donkarl.com/it

 Grazie e buona giornata a tutti del Ng!
Creati una Form in modalità Hidden che verifica su Timer=1000
l'inattività.
Se dopo 10minuti(600 volte l'evento timer) non è stato variato nulla
esegui un Quit.
Per rilevare le variazioni puoi memorizzare il nome del controllo
attivo con
Screen.ActiveControl.Name
 e confrontarlo ad ogni Timer, se diverso
azzeri il
Conteggio(intendo quello delle 600 volte) altrimenti lo incrementi...!
Una cosa simile, molto improvvisata:
Private Sub Form_Timer()
   Static CtlName
   static Counter
   If ctlName<>
Screen.ActiveControl.Name
 then
      ctlName=
Screen.ActiveControl.Name
      Counter=0
   Else
      Counter=Counter+1
   End If
   If Counter>600 then Docmd.Quit
End Sub
Ciao
@Alex