Détecter l'inactivité sur le pc comme la mise en veille
2 réponses
Mick
Bonjour,
j'aimerais que le service windows que je suis en train de faire arrive à
détecter la reprise en main du pc par le user.
En gros, que le service soit en stand bye si le pc est inactif pendant plus
de X minutes et redémarre dès que le user touche sa souris... comme la
gestion de mise en veille donc..
Quelqu'un aurait une piste pour détecter l'inactivité ? checker
l'utilisation du processeur tous les x temps par exemple ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Frédéric Queudret [MS]
Bonjour,
Pour vérifier l'activité du processeur, vous pouvez utiliser les compteurs de performance (PerformanceCounter) et déterminer un seuil de tolérance à partir du quel vous considérez le PC inutilisé (voir l'objet Processor) par exemple. Pour détecter la mise en veille, c'est plus "bas niveau". Cherchez "Winlogon Notification Events" dans MSDN. En .NET cela risque de ne pas être évident. Bon courage, Frédéric.
"Mick" wrote in message news:420cac22$0$632$
Bonjour, j'aimerais que le service windows que je suis en train de faire arrive à détecter la reprise en main du pc par le user. En gros, que le service soit en stand bye si le pc est inactif pendant plus de X minutes et redémarre dès que le user touche sa souris... comme la gestion de mise en veille donc..
Quelqu'un aurait une piste pour détecter l'inactivité ? checker l'utilisation du processeur tous les x temps par exemple ?
Merci de vos conseils.
Bonjour,
Pour vérifier l'activité du processeur, vous pouvez utiliser les compteurs
de performance (PerformanceCounter) et déterminer un seuil de tolérance à
partir du quel vous considérez le PC inutilisé (voir l'objet Processor) par
exemple.
Pour détecter la mise en veille, c'est plus "bas niveau". Cherchez "Winlogon
Notification Events" dans MSDN. En .NET cela risque de ne pas être évident.
Bon courage,
Frédéric.
"Mick" <saulot@libertysurf.fr> wrote in message
news:420cac22$0$632$636a15ce@news.free.fr...
Bonjour,
j'aimerais que le service windows que je suis en train de faire arrive à
détecter la reprise en main du pc par le user.
En gros, que le service soit en stand bye si le pc est inactif pendant
plus
de X minutes et redémarre dès que le user touche sa souris... comme la
gestion de mise en veille donc..
Quelqu'un aurait une piste pour détecter l'inactivité ? checker
l'utilisation du processeur tous les x temps par exemple ?
Pour vérifier l'activité du processeur, vous pouvez utiliser les compteurs de performance (PerformanceCounter) et déterminer un seuil de tolérance à partir du quel vous considérez le PC inutilisé (voir l'objet Processor) par exemple. Pour détecter la mise en veille, c'est plus "bas niveau". Cherchez "Winlogon Notification Events" dans MSDN. En .NET cela risque de ne pas être évident. Bon courage, Frédéric.
"Mick" wrote in message news:420cac22$0$632$
Bonjour, j'aimerais que le service windows que je suis en train de faire arrive à détecter la reprise en main du pc par le user. En gros, que le service soit en stand bye si le pc est inactif pendant plus de X minutes et redémarre dès que le user touche sa souris... comme la gestion de mise en veille donc..
Quelqu'un aurait une piste pour détecter l'inactivité ? checker l'utilisation du processeur tous les x temps par exemple ?
Merci de vos conseils.
Simon Mourier [MS]
Pour le réaliser bien (en tenant compte de tous les paramètre), ce n'est pas forcément évident. Il y a plusieurs méthodes A) la fonction GetLastInputInfo. Le plus simple mais pas forcément disponible sur toutes les plateformes Voir un exemple C# ici: http://www.stevex.org/dottext/archive/2004/02/11/308.aspx
B) les trois fonctions BeginIdleDetection, EndIdleDetection, GetIdleMinutes, voir dans MSDN A priori il vaut mieux utiliser A)
C) Utiliser des hooks. C'est compliqué, voir ici http://www.developer.com/net/cplus/print.php/3416271
D) Vous pouvez enfin utiliser le gestionnaire de tâche (Task Scheduler), regardez notamment IScheduledWorkItem::SetFlags
pour déclencher des tâches qui pourraient prévenir votre service (en utilisant des évènements nommés interprocessus par exemple)
Simon.
"Mick" a écrit dans le message de news: 420cac22$0$632$
Bonjour, j'aimerais que le service windows que je suis en train de faire arrive à détecter la reprise en main du pc par le user. En gros, que le service soit en stand bye si le pc est inactif pendant plus de X minutes et redémarre dès que le user touche sa souris... comme la gestion de mise en veille donc..
Quelqu'un aurait une piste pour détecter l'inactivité ? checker l'utilisation du processeur tous les x temps par exemple ?
Merci de vos conseils.
Pour le réaliser bien (en tenant compte de tous les paramètre), ce n'est pas
forcément évident. Il y a plusieurs méthodes
A) la fonction GetLastInputInfo. Le plus simple mais pas forcément
disponible sur toutes les plateformes
Voir un exemple C# ici:
http://www.stevex.org/dottext/archive/2004/02/11/308.aspx
B) les trois fonctions
BeginIdleDetection, EndIdleDetection, GetIdleMinutes, voir dans MSDN
A priori il vaut mieux utiliser A)
C) Utiliser des hooks. C'est compliqué, voir ici
http://www.developer.com/net/cplus/print.php/3416271
D) Vous pouvez enfin utiliser le gestionnaire de tâche (Task Scheduler),
regardez notamment IScheduledWorkItem::SetFlags
pour déclencher des tâches qui pourraient prévenir votre service (en
utilisant des évènements nommés interprocessus par exemple)
Simon.
"Mick" <saulot@libertysurf.fr> a écrit dans le message de news:
420cac22$0$632$636a15ce@news.free.fr...
Bonjour,
j'aimerais que le service windows que je suis en train de faire arrive à
détecter la reprise en main du pc par le user.
En gros, que le service soit en stand bye si le pc est inactif pendant
plus
de X minutes et redémarre dès que le user touche sa souris... comme la
gestion de mise en veille donc..
Quelqu'un aurait une piste pour détecter l'inactivité ? checker
l'utilisation du processeur tous les x temps par exemple ?
Pour le réaliser bien (en tenant compte de tous les paramètre), ce n'est pas forcément évident. Il y a plusieurs méthodes A) la fonction GetLastInputInfo. Le plus simple mais pas forcément disponible sur toutes les plateformes Voir un exemple C# ici: http://www.stevex.org/dottext/archive/2004/02/11/308.aspx
B) les trois fonctions BeginIdleDetection, EndIdleDetection, GetIdleMinutes, voir dans MSDN A priori il vaut mieux utiliser A)
C) Utiliser des hooks. C'est compliqué, voir ici http://www.developer.com/net/cplus/print.php/3416271
D) Vous pouvez enfin utiliser le gestionnaire de tâche (Task Scheduler), regardez notamment IScheduledWorkItem::SetFlags
pour déclencher des tâches qui pourraient prévenir votre service (en utilisant des évènements nommés interprocessus par exemple)
Simon.
"Mick" a écrit dans le message de news: 420cac22$0$632$
Bonjour, j'aimerais que le service windows que je suis en train de faire arrive à détecter la reprise en main du pc par le user. En gros, que le service soit en stand bye si le pc est inactif pendant plus de X minutes et redémarre dès que le user touche sa souris... comme la gestion de mise en veille donc..
Quelqu'un aurait une piste pour détecter l'inactivité ? checker l'utilisation du processeur tous les x temps par exemple ?