GetLastInputInfo (user32)
Last changed: -70.130.76.223

.
Summary

C# Signature:

[DllImport("user32.dll")]
static extern int GetLastInputInfo(out LASTINPUTINFO plii);

VB Signature:

<DllImport("user32.dll")> _
Shared Function GetLastInputInfo(ByRef plii As LASTINPUTINFO) As Integer
End Function

User-Defined Types:

LASTINPUTINFO

Notes:

Very usefull to detect user-idle state of an application

Tips & Tricks:

Please add some!

Sample Code:

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( out lastInputInfo ) )
        {
        int lastInputTick = lastInputInfo.dwTime;

        idleTime = envTicks - lastInputTick;
        }

        return (( idleTime > 0 ) ? ( idleTime / 1000 ) : idleTime );
    }

Alternative Managed API:

Do you know one? Please contribute it!

Documentation