Détecter l'état de la session user Windows via un service
Bonjour à tous.
Je me tourne vers vous en désespoir de cause.
En effet, j'ai besoin de détecter l'état de la session utilisateur Windows, pour une application VB.NET 2008 tournant en service :? ... et en fait, là est bien le problème, le service !!!
J'ai suivi le thread déjà présent (http://www.developpez.net/forums/d63...e-lordinateur/) mais en fait il ne m'aide pas (hélas :cry:).
J'ai bien suivi qu'il faut traiter le message WM_WTSSESSION_CHANGE via l'override de la méthode WndProc.
Mais il faut visiblement "brancher" la notification sur une fenêtre (donc un Form) via ce genre de code :
Code:
1 2 3 4 5 6 7 8 9 10 11
|
Protected Overrides Sub OnHandleCreated(ByVal e As System.EventArgs)
'
'The WTSRegisterSessionNotification function registers the specified
'window to receive session-change notifications.
'
WTSRegisterSessionNotification(Me.Handle, NOTIFY_FOR_THIS_SESSION)
'
MyBase.OnHandleCreated(e)
'
End Sub |
Or, il y a fort peu d'évènements pour les services, et aucun (si j'ai bien vu) qui prend comme argument un System.EventArgs) :roll:
Ceux que VB.NEt me propose sont juste :
- OnContinue()
- OnCustomCommand(Integer)
- OnPause()
- OnSessionChange(System.ServiceProcess.SessionChangeDescription)
- OnShutdown()
Alors, à votre avis ?
Y aurait-il une technique à laquelle je n'ai pas pensé ?
Je vous remercie, en tous cas, pour vos réponses :mouarf: