如何檢查用戶是否處於非活動狀態? 我有這樣的:檢查用戶是否無效
class UserActivity : IMessageFilter
{
private double afk_time = 0.1;//minutes
private DateTime last_activity = DateTime.Now;
public static bool inactive = false;
private int WM_LBUTTONDOWN = 0x0201;
private int WM_MBUTTONDOWN = 0x0207;
private int WM_RBUTTONDOWN = 0x0204;
private int WM_MOUSEWHEEL = 0x020A;
private int WM_MOUSEMOVE = 0x0200;
private int WM_KEYDOWN = 0x0100;
public bool PreFilterMessage(ref Message m)
{
if (m.Msg == WM_LBUTTONDOWN || m.Msg == WM_MBUTTONDOWN || m.Msg == WM_RBUTTONDOWN || m.Msg == WM_MOUSEWHEEL || m.Msg == WM_MOUSEMOVE || m.Msg == WM_KEYDOWN)
{
this.last_activity = DateTime.Now;
inactive = false;
}
if (DateTime.Now.AddMinutes(-afk_time) > last_activity)
inactive = true;
return false;
}
}
但我必須運行在Program.cs中
Application.AddMessageFilter(new UserActivity());
我如何能做到這一點,我可以通過我的自我運行的用戶不活動的檢查。我會檢查一些複選框,它會開始檢查。
我想檢查全局用戶活動 - 不僅在應用程序中,而且在所有系統中。
我不想使用CPU不必要。或者我應該使用其他解決方案?
這個答案/幫助你嗎? http://stackoverflow.com/questions/1421403/c-sharp-for-how-long-was-user-inactive –
我看到這個線程,但我想檢查你的鏈接中的用戶不活動是Application_Idle事件。 我想知道用戶不活動多久(鼠標和鍵盤事件)。我不知道如果解決方案我使用的是正確的,如果它不會使用大量的CPU ... – sczdavos