2008-08-21 6 views
3

Il existe une documentation sur Internet qui montre que Windows modifie le comportement de la commande NotifyIcon.BalloonTipShown si l'utilisateur est actuellement inactif et qu'il s'agit de detected by checking for keyboard and mouse events. Je travaille actuellement sur une application qui passe la majeure partie de son temps dans la barre d'état système, mais qui surgit de temps à autre plusieurs bulles d'info et je voudrais éviter que l'utilisateur ne manque l'un d'entre eux s'il est actuellement absent. système. Étant donné que tous les conseils de bulle actuellement affichés sont détruits si un nouveau est affiché, je veux attendre de les afficher si l'utilisateur est absent.Existe-t-il un moyen de vérifier si l'utilisateur est actuellement inactif?

En tant que tel, est-il possible de vérifier si l'utilisateur est actuellement inactif si l'application est réduite dans la barre d'état système?

Répondre

4

Que diriez-vous de la fonction Win32 LASTINPUTINFO?

using System.Runtime.InteropServices; 

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

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

Droit !!! Je voudrais juste ajouter un lien au LASTINPUTINFO avec LayoutKind.Sequential: http://www.pinvoke.net/default.aspx/Structures/LASTINPUTINFO.html –

1

code managé

Vérifier la position de la souris à chaque seconde. S'il y a de nouveaux messages pour l'utilisateur, maintenez-les jusqu'à ce que vous ayez détecté un mouvement avec la souris.

Code Unmanaged

Voir Detecting Idle Time with Mouse and Keyboard Hooks

+0

qu'en est-il de la saisie au clavier? – Garrett

0

Merci pour les réponses, j'ai fini par aller avec la fonction GetLastInputInfo comme il est assez simple à mettre en œuvre dans l'application que je travaille.

Questions connexes