一些背景知识:我正在编写一个包含多个表单等的应用程序。用户必须登录才能使用大部分功能,直到现在它都运行良好。但是,现在,客户要求用户在一定的非活动时间后退出。问题是用户仍然可以在计算机上处于活动状态,只是不在我的应用程序中。需要明确的是,当用户在我的应用程序中处于非活动状态时,我必须将其注销,即使他仍在与桌面交互。
首先,我认为这将相当简单。只需记住最后一次操作的时间,在计时器中不断将其与当前时间进行比较,如果经过的时间大于允许的时间,则注销用户。但是我意识到找出最后的行动时间可能不是那么简单......
当然我可以复制粘贴类似
Program.LastActionTime = DateTime.Now;
在每个 OnChange、OnClick 等事件中......但是,由于应用程序的大小,这不仅会是大量工作......这也是一个非常糟糕的做法,我相信它会是至少忘记一次,使整个事情变得不可靠(而且看起来很糟糕,这个错误几乎不可能重现!)
那么,有没有更好的方法呢?