En un entorno Win32, puede utilizar la llamada API GetLastInputInfo see msdn doc. Básicamente, este método devuelve la última marca que corresponde a cuando el usuario proporcionó la información por última vez, y usted tiene que comparar eso con la marca actual para determinar cuánto tiempo hace que fue eso.¿Cómo se puede saber cuándo un usuario presionó por última vez una tecla (o movió el mouse)?
Xavi23cr tiene un buen ejemplo para C# en codeproject.
¿Alguna sugerencia para otros entornos?
[Esta publicación del blog] (http://ryanhomer.com/blog/2007/05/31/detecting-when-your-cocoa-application-is-idle/) tiene varias soluciones para Cocoa. –
He eliminado la etiqueta winapi ya que el OP ya tiene la respuesta de winapi y dice que buscan algo más que winap. – Deanna