Hallo,
ich möchte einen kleinen Service schreiben, der die Zeit protokolliert, die ich tatsächlich arbeite.
Ich stelle mir das so vor, dass der Service die Zeit stoppt, wenn ich eine bestimmte Zeit (z.B. 5 Min.) keine Tastatur- oder Mauseingabe tätige. Wenn ich wieder etwas mache, wird weiter gezählt.
Das müsste also ähnlich funktionieren, wie der Windows-Dienst, der den Bildschimschoner nach einer gewissen Inaktivitätszeit startet.
Wie kann ich da vorgehen? Alles googeln hat mich bisher nur zu Events gebracht, die man aus einem Fenster abfangen kann...
Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg
Hi,
dann benutze dafür die GetLastInputInfo-Funktion.
Und hier der Link für die Umsetzung mittels P/Invoke: http://pinvoke.net/default.aspx/user32/GetLastInputInfo.html
Hallo Paschulke,
ein Dienst ist nicht das richtige für diesen Anwendungsfall. Dienste sind nicht dafür gemacht, auf Benutzereingaben zu reagieren. Schreib ein normales Programm, z.B. eins mit NotifyIcon.
herbivore
Super, Danke Euch! Das funktioniert prima 😃
Eine Frage noch: Gibt es auch ein Event, dass man abfangen kann? Oder muss ich einen Timer verwenden? Damit hatte ich es gerade im ersten Ansatz versucht. Hat zwar gut funktioniert, aber ich frage mich, ob es nicht eleganter geht.
Hallo Paschulke,
um einen eigenen Timer wird man kaum herumkommen. Daran ist auch nichts schlimmes.
herbivore