可能重複:
Check if an application is idle for a time period and lock it如何檢測我的應用程序在c#中空閒?
假設我有一個C#開發的Windows產品。現在需要的是,如果應用程序正在運行並且處於空閒狀態,並且用戶嘗試再次與該應用程序進行交互,則會出現登錄屏幕。如何檢測我的應用程序在運行時是否處於空閒狀態?請指導我完成這項工作。
可能重複:
Check if an application is idle for a time period and lock it如何檢測我的應用程序在c#中空閒?
假設我有一個C#開發的Windows產品。現在需要的是,如果應用程序正在運行並且處於空閒狀態,並且用戶嘗試再次與該應用程序進行交互,則會出現登錄屏幕。如何檢測我的應用程序在運行時是否處於空閒狀態?請指導我完成這項工作。
捕獲Form類對象的離開事件以知道它已失去焦點。
您可以使用Control.LostFocus記錄時用戶導航離開然後使用Control.GotFocus檢查多少時間已經過去了,以確定他們是否需要登錄。
何去何從我簡單的解決方案:
Point cursorPoint;
int minutesIdle=0;
private bool isIdle(int minutes)
{
return minutesIdle >= minutes;
}
private void idleTimer_Tick(object sender, EventArgs e)
{
if (Cursor.Position != cursorPoint)
{
// The mouse moved since last check
minutesIdle = 0;
}
else
{
// Mouse still stoped
minutesIdle++;
}
// Save current position
cursorPoint = Cursor.Position;
}
您可以設置在60000區間運行的定時器。通過這種方式,您只需知道用戶不會移動鼠標多少分鐘。您也可以在Tick事件本身上調用「isIdle」來檢查每個間隔。
Dupicated http://stackoverflow.com/questions/1541981/check-if-an-application-is-idle-for-a-time-period-and-lock-it – 2011-05-04 11:37:31
我發現幾個鏈接,請檢查它們http://msdn.microsoft.com/en-us/library/system.windows.forms.application.idle.aspx http://blog.perfectapi.com/2008/05/detecting-idle-state-in-winforms -apps/ – SharpUrBrain 2011-05-04 12:23:29