Verrouillage de session windows [Résolu]

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

Votre réponse

4 réponses

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

SystemEvents.SessionEnded
SystemEvents.SessionEnding
SystemEvents.SessionSwitch

Ne pourraient pas satisfaire?

<hr />
-My Blog-

Merci cs_Bidou 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Commenter la réponse de cs_Bidou
Meilleure réponse
nicolasToulouse
Messages postés
31
Date d'inscription
mercredi 14 juin 2006
Dernière intervention
11 janvier 2008
- 6 déc. 2007 à 11:54
3
Merci
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

Merci nicolasToulouse 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Commenter la réponse de nicolasToulouse
mckmonster
Messages postés
10
Date d'inscription
vendredi 2 mai 2003
Dernière intervention
6 décembre 2007
- 5 déc. 2007 à 19:15
0
Merci
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
Messages postés
10
Date d'inscription
vendredi 2 mai 2003
Dernière intervention
6 décembre 2007
- 6 déc. 2007 à 15:38
0
Merci
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.