Domanda

C'è della documentazione su Internet che mostra che Windows modifica il comportamento del comando NotifyIcon.BalloonTipShown se l'utente è attualmente inattivo e questo è rilevato controllando gli eventi della tastiera e del mouse.Attualmente sto lavorando su un'applicazione che trascorre la maggior parte del suo tempo nella barra delle applicazioni, ma di tanto in tanto visualizza più suggerimenti di palloncini e vorrei impedire all'utente di perderne qualcuno se è attualmente lontano dal sistema.Poiché tutti i suggerimenti dei fumetti attualmente visualizzati vengono distrutti se ne viene visualizzato uno nuovo, voglio trattenermi dalla visualizzazione se l'utente è assente.

Pertanto, esiste un modo per verificare se l'utente è attualmente inattivo se l'applicazione è ridotta a icona nella barra delle applicazioni?

È stato utile?

Soluzione

Che ne dici di Win32 LASTINPUTINFO funzione?

using System.Runtime.InteropServices;

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

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

Altri suggerimenti

Codice gestito

Controlla la posizione del mouse ogni secondo.Se ci sono nuovi messaggi per l'utente, mantienili finché non rilevi qualsiasi movimento con il mouse.

Codice non gestito

Vedere Rilevamento del tempo di inattività con i ganci del mouse e della tastiera

Grazie per le risposte, alla fine ho scelto la funzione GetLastInputInfo poiché è piuttosto semplice da implementare nell'applicazione su cui sto lavorando.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top