Verrouillage de session windows [Résolu]

mckmonster 10 Messages postés vendredi 2 mai 2003Date d'inscription 6 décembre 2007 Dernière intervention - 5 déc. 2007 à 09:20 - Dernière réponse : mckmonster 10 Messages postés vendredi 2 mai 2003Date d'inscription 6 décembre 2007 Dernière intervention
- 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
Afficher la suite 

4 réponses

Répondre au sujet
cs_Bidou 5507 Messages postés dimanche 4 août 2002Date d'inscription 20 juin 2013 Dernière intervention - 5 déc. 2007 à 17:29
+3
Utile
Salut,
Est-ce que les events

SystemEvents.SessionEnded
SystemEvents.SessionEnding
SystemEvents.SessionSwitch

Ne pourraient pas satisfaire?

<hr />
-My Blog-
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Bidou
nicolasToulouse 31 Messages postés mercredi 14 juin 2006Date d'inscription 11 janvier 2008 Dernière intervention - 6 déc. 2007 à 11:54
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de nicolasToulouse
mckmonster 10 Messages postés vendredi 2 mai 2003Date d'inscription 6 décembre 2007 Dernière intervention - 5 déc. 2007 à 19:15
0
Utile
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.
Commenter la réponse de mckmonster
mckmonster 10 Messages postés vendredi 2 mai 2003Date d'inscription 6 décembre 2007 Dernière intervention - 6 déc. 2007 à 15:38
0
Utile
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.
Commenter la réponse de mckmonster

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.