Sprache: C#
Gibt die Zeitspanne zurück in der keine Benutzerangaben gemacht wurden.
Beispiel:
[code]
Console.WriteLine(IdleTimeDetector.IdleSince);
[/code]
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);
}
}
}
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);
}
}
}
Alte URL:
/snippet/windows-idle-time-ermitteln/1575