Bonjour ,

Juste en passant, je viens de faire une petite contribution sur le site csharp.com
suite à une question d'une personne souhaitant savoir comment detecter
que l'utilisateur à "locker" sa session pour faire des choses différentes en mode "locké"..

Ci joint un petit bout de code qui pourrait servir....

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
public partial class Form1 : Form
    {
        private static bool SessionLock = false;
        private System.Threading.Timer timer = new System.Threading.Timer(OnTimer,null,1000,1000);
        private static StreamWriter writer;
        public Form1()
        {
            InitializeComponent();
            SystemEvents.SessionSwitch += new SessionSwitchEventHandler(SystemEvents_SessionSwitch);
            writer = new StreamWriter(@"d:\trace.txt");
            writer.AutoFlush = true;
        }
 
        static void OnTimer(object state)
        {
            if (SessionLock)
            {
                writer.WriteLine("OnTimer Session Locked : Tick at " + DateTime.Now.Second.ToString());
            }
            else
            {
                writer.WriteLine("OnTimer Session UnLocked : Tick at " + DateTime.Now.Second.ToString());
            }
        }
 
        void SystemEvents_SessionSwitch(object sender, SessionSwitchEventArgs e)
        {
 
            if (e.Reason == SessionSwitchReason.SessionLock)
            {
                writer.WriteLine("Session is lock at " + DateTime.Now.ToString());
                SessionLock = true;
            }
            if (e.Reason == SessionSwitchReason.SessionUnlock)
            {
                writer.WriteLine("Session is unlock at " + DateTime.Now.ToString());
                SessionLock = false;
            }
        }
    }
C'était ma contribution du matin

The Monz, Toulouse