Como saber quando um usuário pressionou uma tecla pela última vez (ou moveu o mouse)?
-
08-06-2019 - |
Pergunta
Em um ambiente Win32, você pode usar a chamada da API GetLastInputInfo em Documentação da Microsoft.Basicamente, este método retorna o último tick que corresponde a quando o usuário forneceu a entrada pela última vez, e você deve compará-lo com o tick atual para determinar há quanto tempo isso aconteceu.
Xavi23cr tem um bom exemplo para C# em projeto de código.
Alguma sugestão para outros ambientes?
Nenhuma solução correta
Outras dicas
Quanto ao Linux, sei que o Pidgin precisa determinar o tempo ocioso para alterar seu status para ausente após um determinado período de tempo.Você pode abrir o código-fonte e ver se consegue encontrar o código que faz o que você precisa.
Você parece ter respondido sua própria pergunta, Nathan ;-) "GetLastInputInfo" é o caminho a percorrer.
Um truque é que, se seu aplicativo estiver sendo executado na área de trabalho e o usuário se conectar a uma máquina virtual, GetLastInputInfo não reportará nenhuma atividade (já que não há atividade na máquina host).
Isso pode ser diferente do comportamento desejado, dependendo de como você deseja aplicar a entrada do usuário.