Frage

Es gibt einige Dokumentationen im Internet, die zeigen, dass Windows das Verhalten des Befehls NotifyIcon.BalloonTipShown ändert, wenn der Benutzer derzeit inaktiv ist und dies der Fall ist wird durch die Überprüfung auf Tastatur- und Mausereignisse erkannt.Ich arbeite derzeit an einer Anwendung, die die meiste Zeit in der Taskleiste verbringt, aber von Zeit zu Zeit mehrere Ballontipps anzeigt, und ich möchte verhindern, dass der Benutzer einen davon verpasst, wenn er gerade nicht in der Taskleiste ist System.Da alle aktuell angezeigten Ballontipps zerstört werden, wenn ein neuer angezeigt wird, möchte ich sie nicht anzeigen, wenn der Benutzer abwesend ist.

Gibt es daher eine Möglichkeit zu überprüfen, ob der Benutzer derzeit inaktiv ist, wenn die Anwendung in der Taskleiste minimiert ist?

War es hilfreich?

Lösung

Wie wäre es mit Win32 LETZTE PUTINFO Funktion?

using System.Runtime.InteropServices;

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

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

Andere Tipps

Verwalteter Code

Überprüfen Sie jede Sekunde die Position der Maus.Wenn es neue Nachrichten für den Benutzer gibt, behalten Sie diese bei, bis Sie eine Bewegung mit der Maus bemerken.

Nicht verwalteter Code

Sehen Erkennen von Leerlaufzeiten mit Maus- und Tastatur-Hooks

Vielen Dank für die Antworten. Am Ende habe ich mich für die Funktion „GetLastInputInfo“ entschieden, da sie in der Anwendung, an der ich arbeite, ziemlich einfach zu implementieren ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top