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;
            }
    
            
        }
    }
    


  • 相关阅读:
    操作系统__kali(1)基本操作指令,以及常用工具
    Log4net入门(回滚日志文件篇)
    Log4net入门(日志文件篇)
    Log4net入门(控制台篇)
    openwrt控制GPIO
    openwrt DTS介绍
    openwrt bin文件解析
    STM32(三十)蓝牙通信
    openwrt的led configuration
    uci文件生成脚本函数说明
  • 原文地址:https://www.cnblogs.com/snake-hand/p/3144980.html
Copyright © 2011-2022 走看看