Einige Hintergrund: Ich schreibe eine Anwendung mit mehreren Formen, usw. Benutzer müssen sich anmelden, um die meisten Funktionen zu verwenden, und das hat bis jetzt gut funktioniert. Jetzt hat der Client jedoch angefordert, dass der Benutzer nach einer bestimmten Inaktivitätszeit abgemeldet wird. Das Problem ist, dass der Benutzer immer noch auf dem Computer aktiv sein kann, nur nicht in meiner Anwendung. Um klar zu sein, muss ich den Benutzer ausloggen, wenn er in meiner Anwendung inaktiv ist, selbst wenn er noch mit dem Desktop interagiert.C# Wie lange war der Benutzer inaktiv
Zuerst dachte ich, das wäre ziemlich einfach. Merken Sie sich einfach die Zeit der letzten Aktion, vergleichen Sie sie kontinuierlich in einem Timer mit der aktuellen Uhrzeit und melden Sie den Benutzer ab, wenn die verstrichene Zeit größer als die erlaubte Zeit ist. Ich habe jedoch festgestellt, dass die letzte Aktion Zeit herauszufinden, ist nicht so einfach sein kann ...
Natürlich habe ich Paste etwas wie
Program.LastActionTime = DateTime.Now;
in jedem OnChange, OnClick, etc kopieren könnte, Event ... Aber nicht nur, dass dies wegen der Größe der Anwendung eine große Menge an Arbeit wäre ... Es wäre auch eine sehr schlechte Übung und ich bin sicher, dass es mindestens einmal vergessen würde, was das Ganze unzuverlässig machen würde (Und gebrochen erscheinen, wäre der Fehler fast unmöglich zu reproduzieren!)
Also, gibt es einen besseren Weg?
Das ist genau das, was ich gesucht habe! –
Das ist die Hälfte, aber was sagt Ihnen, dass das Programm nicht mehr im Leerlauf ist? –