2008-08-05 9 views
6

W środowisku Win32 można użyć wywołania API GetLastInputInfo see msdn doc. Zasadniczo ta metoda zwraca ostatni znacznik, który odpowiada, gdy użytkownik ostatni wprowadził dane wejściowe, i musisz porównać to z bieżącym znacznikiem, aby określić, jak dawno temu było.Jak rozpoznać, kiedy użytkownik nacisnął klawisz (lub poruszył myszą)?

Xavi23cr ma dobry przykład dla języka C# pod numerem codeproject.

Wszelkie sugestie dotyczące innych środowisk?

+0

[Ten wpis na blogu] (http://ryanhomer.com/blog/2007/05/31/detecting-when-your-cocoa-application-is-idle/) ma różne rozwiązania dla kakao. –

+0

Usunąłem tag winapi, ponieważ OP ma już odpowiedź na winapi i mówi, że chodzi o coś innego niż winap. – Deanna

Odpowiedz

3

Jeśli chodzi o system Linux, wiem, że Pidgin musi określić czas bezczynności, aby zmienić status na nieobecny po pewnym czasie. Możesz otworzyć źródło i sprawdzić, czy możesz znaleźć kod, który robi to, czego potrzebujesz.

1

Wygląda na to, że odpowiedziałeś na własne pytanie Nathan ;-) "GetLastInputInfo" jest drogą do zrobienia.

Jedna sztuczka polega na tym, że jeśli aplikacja działa na pulpicie, a użytkownik łączy się z maszyną wirtualną, wówczas GetLastInputInfo zgłosi brak aktywności (ponieważ nie ma żadnej aktywności na hoście).

Może się to różnić od pożądanego zachowania, w zależności od tego, jak chcesz zastosować dane wprowadzone przez użytkownika.

+1

Szuka sugestii w środowiskach innych niż Windows. – mnuzzo

Powiązane problemy