2011-12-22 14 views

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.

+0

Grazie! Ora sto leggendo questo link http://support.microsoft.com/kb/310153. Proverò il codice più tardi. –

+4

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() '. –

Problemi correlati