Use Windows API function Getlastinputinfo () to determine system idle
Add reference using System.Runtime.InteropServices;
1 //create struct to return capture time2 [StructLayout (layoutkind.sequential)]3 structLastinputinfo4 {5 //set structure block capacity6 [MarshalAs (UNMANAGEDTYPE.U4)]7 Public intcbsize;8 //Time of Capture9 [MarshalAs (UNMANAGEDTYPE.U4)]Ten Public UINTDwtime; One } A[DllImport ("user32.dll")] - Private Static extern BOOLGetlastinputinfo (reflastinputinfo plii); - //get keyboard and mouse time without action the Private Static Longgetlastinputtime () - { -Lastinputinfo Vlastinputinfo =Newlastinputinfo (); -Vlastinputinfo.cbsize =marshal.sizeof (vlastinputinfo); + //Capture Time - if(! Getlastinputinfo (refvlastinputinfo)) + return 0; A Else at returnEnvironment.tickcount-(Long) Vlastinputinfo.dwtime; -}
C # Judgment System Idle (keyboard, mouse does not operate for some time)