جهت کمک به فرآیند جستجو، بهتره عنوان پست به انگلیسی نیز نوشته شود :
Get System Idle Time
struct LASTINPUTINFO
{
public uint cbSize;
public uint dwTime;
}
[DllImport("User32.dll")]
private static extern bool GetLastInputInfo(ref LASTINPUTINFO plii);
public static uint GetIdleTime()
{
LASTINPUTINFO lastInPut = new LASTINPUTINFO();
lastInPut.cbSize = (uint)System.Runtime.InteropServices.Marshal.SizeO f(lastInPut);
GetLastInputInfo(ref lastInPut);
return ((uint)Environment.TickCount - lastInPut.dwTime);
}
مثالی از نحوه ی استفاده :
private Timer CheckIdleTimer;
private void Form1_Load(object sender, System.EventArgs e)
{
CheckIdleTimer = new Timer();
CheckIdleTimer.Interval = 1000;
CheckIdleTimer.Start();
CheckIdleTimer.Tick += new EventHandler(CheckIdleTimer_Tick);
}
private void CheckIdleTimer_Tick(object sender, System.EventArgs e)
{
this.Text = (GetIdleTime() / 1000).ToString();
}
با استفاده از :
http://www.codeproject.com/KB/cs/GetIdleTimeWithCS.aspx