[DllImport("user32.dll")]
static extern bool GetLastInputInfo(ref LASTINPUTINFO plii);
<DllImport("user32.dll")> _
Shared Function GetLastInputInfo(ByRef plii As LASTINPUTINFO) As Boolean
End Function
[DllImport("user32.dll")]
static bool GetLastInputInfo(LASTINPUTINFO* plii);
Very usefull to detect user-idle state of an application.
Minimum operating systems: Windows 2000
Please add some!
This function retrieves the time since last user input
static int GetLastInputTime()
{
int idleTime = 0;
LASTINPUTINFO lastInputInfo = new LASTINPUTINFO();
lastInputInfo.cbSize = Marshal.SizeOf( lastInputInfo );
lastInputInfo.dwTime = 0;
int envTicks = Environment.TickCount;
if( GetLastInputInfo( ref lastInputInfo ) )
{
int lastInputTick = lastInputInfo.dwTime;
idleTime = envTicks - lastInputTick;
}
return (( idleTime > 0 ) ? ( idleTime / 1000 ) : idleTime );
}
This function retrieves the time since last user input
Dim idletime As Integer
Dim lastInputInf As New LASTINPUTINFO()
Public Function GetLastInputTime() As Integer
idletime = 0
lastInputInf.cbSize = Marshal.SizeOf(lastInputInf)
lastInputInf.dwTime = 0
If GetLastInputInfo(lastInputInf) Then
idletime = Environment.TickCount - lastInputInf.dwTime
End If
If idletime > 0 Then
Return idletime / 1000
Else : Return 0
End If
End Function
This function retrieves the time since last user input
public: static double getSystemIdleTime()
{
int systemUptime = Environment::TickCount;
int idleTicks = 0;
LASTINPUTINFO lastInputInfo;
lastInputInfo.cbSize = (UInt32)Marshal::SizeOf(lastInputInfo);
lastInputInfo.dwTime = 0;
if (GetLastInputInfo(&lastInputInfo))
{
int lastInputTicks = (int)lastInputInfo.dwTime;
idleTicks = systemUptime - lastInputTicks;
}
return (( idleTime > 0 ) ? ( idleTime / 1000 ) : idleTime );
}
Do you know one? Please contribute it!