在Win32環境中,您可以使用GetLastInputInfo API調用see msdn doc。基本上,此方法返回與用戶上次提供輸入時相對應的最後一個滴答,並且您必須將其與當前滴答進行比較以確定多久之前。如何判斷用戶上次按下某個鍵(或移動鼠標)的時間?
Xavi23cr在codeproject有一個很好的C#示例。
其他環境的任何建議?
在Win32環境中,您可以使用GetLastInputInfo API調用see msdn doc。基本上,此方法返回與用戶上次提供輸入時相對應的最後一個滴答,並且您必須將其與當前滴答進行比較以確定多久之前。如何判斷用戶上次按下某個鍵(或移動鼠標)的時間?
Xavi23cr在codeproject有一個很好的C#示例。
其他環境的任何建議?
至於Linux,我知道Pidgin必須在一段時間後確定空閒時間以將您的狀態更改爲離開狀態。您可以打開源代碼並查看是否可以找到您需要的代碼。
你似乎已經在那裏回答了你自己的問題Nathan ;-) 「GetLastInputInfo」是要走的路。
一個竅門是,如果您的應用程序在桌面上運行,並且用戶連接到虛擬機,則GetLastInputInfo將報告沒有活動(因爲主機上沒有活動)。
這可能與您想要的行爲有所不同,具體取決於您希望如何應用用戶輸入。
[此博客文章](http://ryanhomer.com/blog/2007/05/31/detecting-when-your-cocoa-application-is-idle/)爲Cocoa提供了各種解決方案。 – 2008-08-17 18:36:10
我已經刪除了winapi標籤,因爲OP已經有了winapi答案,並且說它們是在winap以外的任何其他地方。 – Deanna 2012-10-11 13:27:56