3 votes

Existe-t-il un moyen de vérifier si l'utilisateur est actuellement inactif ?

Il existe une documentation sur Internet qui montre que Windows modifie le comportement de la commande NotifyIcon.BalloonTipShown si l'utilisateur est actuellement inactif, ce qui est le suivant détecté en vérifiant les événements du clavier et de la souris . Je travaille actuellement sur une application qui passe la plupart de son temps dans la barre d'état système, mais qui fait apparaître de temps en temps de multiples info-bulles et je voudrais empêcher l'utilisateur de les manquer s'il est éloigné du système. Étant donné que toutes les info-bulles affichées sont détruites si une nouvelle info-bulle est affichée, je veux éviter de les afficher si l'utilisateur est absent.

Ainsi, existe-t-il un moyen de vérifier si l'utilisateur est actuellement inactif lorsque l'application est réduite à la barre d'état système ?

4voto

Mark Cidade Points 53945

Qu'en est-il du Win32 LASTINPUTINFO fonction ?

using System.Runtime.InteropServices;

[DllImport("User32.dll")] 
static extern bool GetLastInputInfo(ref LASTINPUTINFO plii);

struct LASTINPUTINFO 
{
    public uint cbSize;
    public uint dwTime;
}

1voto

lubos hasko Points 13669

Code géré

Vérifiez la position de la souris toutes les secondes. S'il y a de nouveaux messages pour l'utilisateur, gardez-les jusqu'à ce que vous détectiez un mouvement de la souris.

Code non géré

Voir Détection du temps d'inactivité avec les crochets pour souris et clavier

0voto

rjzii Points 8979

Merci pour les réponses, j'ai fini par opter pour la fonction GetLastInputInfo car elle est assez simple à mettre en œuvre dans l'application sur laquelle je travaille.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X