Buongiorno, nel mio ufficio ogni dipendente accede a Windows con le proprie credenziale. Tutti noi utilizzano obbligatoriamente un database da me realizzato. Quindi il database è sempre in funzione quando siamo di turno.
A fine turno ogni dipendente connesso a Windows dovrebbe di regola effettuare il LOGOUT da Windows ma capita spesso (magari per distrazione) che questa cosa non venga fatta.
Ora…nel mio database c'è una funzione che in determinati momenti della giornata (esattamente alle ore 7, 14 e 22) va a effettuare un controllo sul dipendente connesso e se per caso entro 180 secondi non conferma la propria identità allora il database si chiude.
Stavo pensando di sfruttare questa funzionalità aggiungendo un rigo di comando che va a disconnettere anche Windows qualora in questi famosi 180 secondi non viene confermata l'identità. Ho provato con
Shell "shutdown /l", vbHide
Devo dire che funziona…alla scadenza dei 180 secondi, se non viene confermata la propria identità allora avviene la disconnessione. Diciamo che fa proprio quello che volevo.
Il problema nasce quando un'utenza Windows rimane in uno stato aperto ma disattivato. Non so se è chiaro? Mi spiego meglio:
succede spesso che il dipendente verso la fine del proprio turno non sta lavorand con il computer e dopo qualche minuto di in attività Windows va in TimeOut, poi dopo altri minuti arriva il cambio dal collega. Quello di prima non effettua la disconnessione da Windows, ma lascia l'utenza in uno stato che non è né attivo ma neanche disattivo. Nel frattempo il collega del turno successivo effettua il suo LogIn perciò in quel momento ci sono almeno 2 utenti loggiati.
Ora
Shell “shutdown /l”, vbHide
non funziona se l'utenza del primo dipendente si trova nello stato così come ho descritto.
Tutto il resto funziona, la chiusura del database avviene mentre l'utenza Windows rimane sempre aperta.
Sto sbagliando qualcosa? Magari non è possibile realizzare quello che voglio?