2008-08-05 5 views
6

In einer Win32-Umgebung können Sie den GetLastInputInfo API-Aufruf see msdn doc verwenden. Im Grunde gibt diese Methode das letzte Häkchen zurück, das dem Zeitpunkt entspricht, zu dem der Benutzer zuletzt Eingaben gemacht hat, und Sie müssen das mit dem aktuellen Häkchen vergleichen, um festzustellen, wie lange das vorher war.Wie können Sie feststellen, wann ein Benutzer zuletzt eine Taste gedrückt hat (oder die Maus bewegt hat)?

Xavi23cr hat ein gutes Beispiel für C# bei codeproject.

Irgendwelche Vorschläge für andere Umgebungen?

+0

[Dieser Blogbeitrag] (http://ryanhomer.com/blog/2007/05/31/detecting-when-your-cocoa-application-is-idle/) hat verschiedene Lösungen für Cocoa. –

+0

Ich habe das winapi-Tag entfernt, da das OP bereits die winapi-Antwort hat und sagt, dass sie nach etwas anderem als winap sind. – Deanna

Antwort

3

Wie für Linux weiß ich, dass Pidgin Leerlaufzeit bestimmen muss, um Ihren Status nach einer bestimmten Zeit zu ändern. Sie können die Quelle öffnen und nachsehen, ob Sie den Code finden, der das tut, was Sie tun müssen.

1

Sie scheinen Ihre eigene Frage da Nathan beantwortet zu haben ;-) "GetLastInputInfo" ist der Weg zu gehen.

Ein Trick ist, dass, wenn Ihre Anwendung auf dem Desktop ausgeführt wird und der Benutzer eine Verbindung zu einer virtuellen Maschine herstellt, GetLastInputInfo keine Aktivität meldet (da auf dem Hostcomputer keine Aktivität stattfindet).

Dies kann sich vom gewünschten Verhalten unterscheiden, je nachdem, wie Sie die Benutzereingabe anwenden möchten.

+1

Er sucht nach Vorschlägen in anderen Umgebungen als Windows. – mnuzzo