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 ).

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 : Sélectionner tout - Visualiser dans une fenêtre à part
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)

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