Verrouillage de session windows

[Résolu]
Signaler
Messages postés
10
Date d'inscription
vendredi 2 mai 2003
Statut
Membre
Dernière intervention
6 décembre 2007
-
Messages postés
10
Date d'inscription
vendredi 2 mai 2003
Statut
Membre
Dernière intervention
6 décembre 2007
-
Bonjour,
Est-ce que quelqu'un pourrait me dire comment je peux faire pour savoir si ma session est verrouillé ou pas.

En fait, il faudrait lorsque je fais Ctrl-Alt-Suppr\Verrouiller l'ordinateur, mon appli fasse des trucs differents de quand ma session windows n'est pas verouillé.

Mais je n'arrive pas à trouver l'info, quelqu'un pourrait m'aider ?

Merci

4 réponses

Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
56
Salut,
Est-ce que les events

SystemEvents.SessionEnded
SystemEvents.SessionEnding
SystemEvents.SessionSwitch

Ne pourraient pas satisfaire?

<hr />
-My Blog-
Messages postés
31
Date d'inscription
mercredi 14 juin 2006
Statut
Membre
Dernière intervention
11 janvier 2008

salut

Si tu fais le code suivant , tu y arriveras :

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;
            }
        }
    }
En fait, j'ai un timer de type Threading.Timer (donc, meme en mode locké, il va continuer à tourner...

et avec le SessionLock , mon thread (OnTimer) sait dans quel état je suis

Résolu ?

The Monz, Toulouse
Messages postés
10
Date d'inscription
vendredi 2 mai 2003
Statut
Membre
Dernière intervention
6 décembre 2007

Ben j'ai pas l'impression, que ça soit bon.

Après avoir fais quelques tests, les events :
SystemEvents.SessionEnded
SystemEvents.SessionEnding
Sont appelés lorsque l'on ferme la session.

Et l'event SystemEvents.SessionsSwitch est appelé lorsque l'on switch d'utilisateur.

Mais j'ai pas trouvé l'equivalent sur le verrouillage de la session.
Messages postés
10
Date d'inscription
vendredi 2 mai 2003
Statut
Membre
Dernière intervention
6 décembre 2007

Super, ça fonctionne.

En fait, j'avais du mal faire mes tests le premier coups.

Bidou, tu avais raison, l'event "SessionSwich" fonctionne pour ce que je voulais.

En testant, le code de nicolasToulouse ça fontionne.

Merci à tous les deux.