Verrouillage de session windows

Résolu
mckmonster Messages postés 10 Date d'inscription vendredi 2 mai 2003 Statut Membre Dernière intervention 6 décembre 2007 - 5 déc. 2007 à 09:20
mckmonster Messages postés 10 Date d'inscription vendredi 2 mai 2003 Statut Membre Dernière intervention 6 décembre 2007 - 6 déc. 2007 à 15:38
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

cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
5 déc. 2007 à 17:29
Salut,
Est-ce que les events

SystemEvents.SessionEnded
SystemEvents.SessionEnding
SystemEvents.SessionSwitch

Ne pourraient pas satisfaire?

<hr />
-My Blog-
3
nicolasToulouse Messages postés 31 Date d'inscription mercredi 14 juin 2006 Statut Membre Dernière intervention 11 janvier 2008
6 déc. 2007 à 11:54
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
3
mckmonster Messages postés 10 Date d'inscription vendredi 2 mai 2003 Statut Membre Dernière intervention 6 décembre 2007
5 déc. 2007 à 19:15
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.
0
mckmonster Messages postés 10 Date d'inscription vendredi 2 mai 2003 Statut Membre Dernière intervention 6 décembre 2007
6 déc. 2007 à 15:38
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.
0
Rejoignez-nous