Come rilevare che Windows è bloccato (Win + L o bloccato da screensaver)? È possibile?Come rilevare che Windows è bloccato?
6
A
risposta
11
Non esiste un modo documentato per controllare se la sessione è bloccata. C'è comunque un modo per rilevare che la sessione è ottenendo bloccata. Usa WTSRegisterSessionNotification(), riceverai un messaggio WM_WTSSESSION_CHANGE con il valore WTS_SESSION_LOCK quando la workstation viene bloccata.
Se si prevede di fare questo da un servizio, assicurarsi di google "isolamento sessione 0" per scoprire perché non funziona.
Grazie! Ora sto leggendo questo link http://support.microsoft.com/kb/310153. Proverò il codice più tardi. –
L'uso di 'WTSRegisterSessionNotification()' è l'unica opzione. MSDN dice (vedi http://msdn.microsoft.com/en-us/library/windows/desktop/aa376875.aspx): "Non esiste alcuna funzione che puoi chiamare per determinare se la workstation è bloccata. quando l'utente esegue il login, usa la funzione 'WTSRegisterSessionNotification()' per ricevere i messaggi 'WM_WTSSESSION_CHANGE'." I servizi che utilizzano una callback SCM 'HandlerEx', al contrario di un callback SCM' Handler', possono ricevere notifiche 'SERVICE_CONTROL_SESSIONCHANGE' da' WTSRegisterSessionNotification() '. –