zoukankan      html  css  js  c++  java
  • c#超时锁定

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Runtime.InteropServices;
    
    namespace VistaRenderer
    {
        public partial class FrmTestTimeout : Form
        {
            public FrmTestTimeout()
            {
                InitializeComponent();// this.timer1 = new System.Windows.Forms.Timer(this.components);
            }
    
            private void FrmTestTimeout_Load(object sender, EventArgs e)
            {
                timer1.Enabled = true;
                timer1.Interval = 2 * 1000;// 计时器触发间隔 2秒
                this.timer1.Tick += new EventHandler(timer1_Tick);
            }
            /// <summary>
            /// 计时器触发
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            void timer1_Tick(object sender, EventArgs e)
            {
                // 距离上一次系统输入时间大于5秒
                if (GetLastInputTime() >=  5 * 1000) 
                {
                    MessageBox.Show("time out");//这里可以写超时处理,比如弹出一个锁定窗口
                }
            }
    
            [StructLayout(LayoutKind.Sequential)]
            struct LASTINPUTINFO
            {
                [MarshalAs(UnmanagedType.U4)]
                public int cbSize;
                [MarshalAs(UnmanagedType.U4)]
                public uint dwTime;
            }
    
            [DllImport("user32.dll")]
            static extern bool GetLastInputInfo(ref LASTINPUTINFO plii);
    
            /// <summary>
            /// 获得距离上一次操作时间间隔
            /// </summary>
            /// <returns></returns>
            static long GetLastInputTime()
            {
                LASTINPUTINFO vLastInputInfo = new LASTINPUTINFO();
                vLastInputInfo.cbSize = Marshal.SizeOf(vLastInputInfo);
                if (!GetLastInputInfo(ref vLastInputInfo)) return 0;
                return Environment.TickCount - (long)vLastInputInfo.dwTime;
            }
    
            
        }
    }
    


  • 相关阅读:
    Linux-安装FFmpeg
    博客园添加视频
    博客园添加音乐
    通过容器提交镜像(docker commit)以及推送镜像(docker push)笔记
    根据不同配置.env获取不同的配置文件的配置
    1M大概多少个字
    计算机存储单位
    DNS原理及其解析过程
    查看到百度经过了多少个网关
    C语言的本质(18)——函数的可变参数
  • 原文地址:https://www.cnblogs.com/snake-hand/p/3144980.html
Copyright © 2011-2022 走看看