不活动x分钟后返回登录表单
本文关键字:登录 表单 返回 分钟 不活动 | 更新日期: 2023-09-27 18:09:48
我创建了一个WinForm应用程序。现在我想检测用户没有与该程序进行任何交互的时刻(例如,20分钟后)。在此事件之后,我想回到我的登录表单。如何,特别是在哪里,我可以做到这一点?我有很多不同的窗体和控件,不想修改太多。
谢谢。:)
无需看到任何代码…
- 在你的命名空间下创建一个带有单一公共静态DateTime属性的类
- 处理窗体上的鼠标和键盘事件。 在事件处理程序中使用当前时间更新此属性。
- 添加计时器,每X次检查此属性。
另外:了解如何在表单级别处理键盘事件Windows窗体应用程序中的键盘输入
无需看到任何代码…
一个快速而肮脏的方法是实现Timer
,每20分钟检查鼠标位置…如果用户仍然处于活动状态,他们不太可能不移动鼠标。(除非你的控件可以完全通过键盘控制)
我相信你可以通过:
查看鼠标位置 Cursor.Position.X
和Cursor.Position.Y
在主表单上添加一个计时器
public static System.Timers.Timer g_timer = new System.Timers.Timer(20 * 1000 * 60);
现在在form1构造函数中添加一个事件:
public Form1()
{
InitializeComponent();
g_timer.Elapsed += new System.Timers.ElapsedEventHandler(g_timer_Elapsed);
g_timer.Start();
}
和事件处理程序作为
private static void g_timer_Elapsed(object sender, EventArgs e)
{
//Hide/ Close other forms and Show login form
}
现在写一个函数来重置主格式的定时器
public static void resettimer()
{
g_timer.Stop();
g_timer.Start();
}
现在您可以像这样在每个表单的KeyPress事件上调用form1.resettimer()
函数。
private void Form2_KeyPress(object sender, KeyPressEventArgs e)
{
form1.resettimer();
}