c# winfrom程序检测长时间未操作,返回到登录界面

这段代码展示了如何实现一个Windows消息过滤器`MyMessager`,用于监听键盘和鼠标事件。当检测到用户操作时,重置计数器`iOperCount`。若在指定时间`t`内无用户操作,程序将隐藏并弹出登录窗口进行屏幕锁定。这涉及到了用户交互监控和应用程序安全方面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public MainView()
{

        MyMessager msg = new MyMessager();
        Application.AddMessageFilter(msg);
    }
     static int iOperCount = 0;//记录上时间未操作的时间
    internal class MyMessager : IMessageFilter
    {
        public bool PreFilterMessage(ref Message m)
        {
            //这个函数可以做很多事情,只要是windows消息都会经过,例如注册全局快捷键,修改窗体大小边框,等等
            //也可以调API做对应的事情
            if (m.Msg == WM_KEYDOWN || m.Msg == 513 || m.Msg == 515 ||m.Msg == 516 ||m.Msg == 522
                //|| m.Msg == (int)WindowsMessages.WM_MOUSEMOVE
                //|| m.Msg == (int)WindowsMessages.WM_LBUTTONDOWN
                //|| m.Msg == (int)WindowsMessages.WM_RBUTTONDOWN
                ||m.Msg == WM_KEYUP
                ||m.Msg == WM_RBUTTONDOWN
                )
            {
                iOperCount = 0;
            }
            return false;
        }
    }
       private void timer1_Tick(object sender, EventArgs e)
    {
        iOperCount++;
        this.label2.Text = iOperCount.ToString();//屏幕长时间未操作,累计时间
        int t = fappvars.ScreenLockTime;//获取配置文件中的锁屏时间
        if (iOperCount > t)
        {
            iOperCount = 0;
            this.Hide();
            Login login = new Login();//登录
            login.ShowDialog();//弹出
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值