Question

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 que c'est le cas. 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 affiche de temps en temps plusieurs info-bulles et j'aimerais empêcher l'utilisateur d'en manquer s'il est actuellement absent de la barre d'état système. système.Étant donné que toutes les info-bulles actuellement affichées sont détruites si une nouvelle est affichée, je souhaite ne pas les afficher si l'utilisateur est absent.

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

Était-ce utile?

La solution

Que diriez-vous 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;
}

Autres conseils

Code managé

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

Code non géré

Voir Détection des temps d'inactivité avec les crochets de souris et de clavier

Merci pour les réponses, j'ai fini par utiliser la fonction GetLastInputInfo car elle est assez simple à implémenter dans l'application sur laquelle je travaille.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top