Некоторый фон:
Я пишу приложение с несколькими формами и т. Д. Пользователи должны войти в систему, чтобы использовать большинство функций, и до сих пор это работало нормально. Однако теперь клиент запросил, чтобы пользователь вышел из системы после определенного количества неактивного времени. Проблема в том, что пользователь все еще может быть активным на компьютере, но не в моем приложении. Чтобы было ясно, я должен выйти из системы, когда он неактивен в моем приложении, даже если он все еще взаимодействует с рабочим столом.
Сначала я подумал, что это будет довольно просто. Просто запомните время последнего действия, постоянно сравнивайте его по таймеру с текущим временем и выйдите из системы, если прошедшее время превышает допустимое время. Однако я понял, что выяснить время последнего действия может быть не так просто ...
Конечно, я мог бы скопировать вставить что-то вроде
Program.LastActionTime = DateTime.Now;
в каждом событии OnChange, OnClick и т. Д. ... Однако не только то, что это будет большой объем работы из-за размера приложения ... Это также очень плохая практика, и я уверен, это будет забыто, по крайней мере, один раз, что сделает все это ненадежным (и, похоже, он сломан, ошибку почти невозможно воспроизвести!)
Итак, есть ли лучший способ?