程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> c#超時鎖定

c#超時鎖定

編輯:C#入門知識

[csharp]
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; 
        } 
 
         
    } 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved