Feedback

C# - Windows Idle Time ermitteln

Veröffentlicht von am 27.09.2011
(0 Bewertungen)
Gibt die Zeitspanne zurück in der keine Benutzerangaben gemacht wurden.

Beispiel:


Console.WriteLine(IdleTimeDetector.IdleSince);
GFU-Schulungen  [Anzeige]

VB.NET Komplett

Sie stehen vo der Aufgabe, individuelle Anwendungen für Windows zu schreiben. Hier ist VB.NET die optimale Sprache. Sie erlernt sich recht leicht und passt sich komplett in die .NET Umgebung von Microsoft ein. Nach der Schulung entwickeln Sie anwenderfreundliche Programme in VB.NET . Mit den objektorientierten Modellen in VB.NET erzeugen Sie außerdem wiederverwendbare Komponenten.

C# Aufbaukurs

Sie haben grundlegende .NET- und C#-Kenntnisse und und wollen diese nun erweitern. Der Aufbaukurs C# führt Sie ein die Arbeit mit Interfaces und Delegates, Generics und Parallel Computing.

 public static class IdleTimeDetector
    {
        [DllImport("user32.dll")]
        static extern bool GetLastInputInfo(out LastInputInfo plii);

        [StructLayout(LayoutKind.Sequential)]
        struct LastInputInfo
        {
            public static readonly int SizeOf = Marshal.SizeOf(typeof(LastInputInfo));
            [MarshalAs(UnmanagedType.U4)]
            public int cbSize;
            [MarshalAs(UnmanagedType.U4)]
            public int dwTime;
        }

        public static TimeSpan IdleSince
        {
            get
            {
                int idleTime = 0;
                LastInputInfo lastInputInfo = new LastInputInfo();
                lastInputInfo.cbSize = Marshal.SizeOf(lastInputInfo);
                lastInputInfo.dwTime = 0;

                if (GetLastInputInfo(out lastInputInfo))
                {
                    idleTime = Environment.TickCount - lastInputInfo.dwTime;
                }

                return TimeSpan.FromMilliseconds(idleTime);
            }
        }
    }

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!