2008-08-05 16 views
6

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?

+0

[Esta publicación del blog] (http://ryanhomer.com/blog/2007/05/31/detecting-when-your-cocoa-application-is-idle/) tiene varias soluciones para Cocoa. –

+0

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

Respuesta

3

En cuanto a Linux, sé que Pidgin tiene que determinar el tiempo de inactividad para cambiar su estado a una distancia después de un cierto período de tiempo. Puede abrir la fuente y ver si puede encontrar el código que hace lo que necesita hacer.

1

Parece que ha respondido su propia pregunta allí Nathan ;-) "GetLastInputInfo" es el camino a seguir.

Un truco es que si su aplicación se ejecuta en el escritorio y el usuario se conecta a una máquina virtual, entonces GetLastInputInfo no informará ninguna actividad (ya que no hay actividad en el equipo host).

Esto puede ser diferente al comportamiento que desee, dependiendo de cómo desee aplicar la entrada del usuario.

+1

Está buscando sugerencias en entornos que no sean Windows. – mnuzzo

Cuestiones relacionadas