• 实现程序多长时间没有接受到用户的消息


     1   private void Form1_Load(object sender, EventArgs e)
     2         {
     3             System.Windows.Forms.Timer t = new System.Windows.Forms.Timer();
     4             t.Interval = 100;
     5             t.Tick += new EventHandler(t_Tick);
     6             t.Start();
     7         }
     8 
     9         void t_Tick(object sender, EventArgs e)
    10         {
    11             long time = GetLastInputTime();
    12             if (time > 1000)
    13             {
    14                 ((System.Windows.Forms.Timer)sender).Stop();
    15                 MessageBox.Show(time.ToString());
    16             }
    17         }
    18 
    19         [StructLayout(LayoutKind.Sequential)]
    20         struct LASTINPUTINFO
    21         {
    22             [MarshalAs(UnmanagedType.U4)]
    23             public int cbSize;
    24             [MarshalAs(UnmanagedType.U4)]
    25             public uint dwTime;
    26         }
    27 
    28         [DllImport("user32.dll")]
    29         static extern bool GetLastInputInfo(ref LASTINPUTINFO plii);
    30 
    31         static long GetLastInputTime()
    32         {
    33             LASTINPUTINFO vLastInputInfo = new LASTINPUTINFO();
    34             vLastInputInfo.cbSize = Marshal.SizeOf(vLastInputInfo);
    35             if (!GetLastInputInfo(ref vLastInputInfo)) return 0;
    36             return Environment.TickCount - (long)vLastInputInfo.dwTime;
    37         }
  • 相关阅读:
    Ubuntu 12.04 git server
    Moonlight不再继续?!
    Orchard 视频资料
    一恍惚八月最后一天了
    Box2D lua binding and Usage
    50岁还在编程,也可以是一种成功
    DAC 4.2 发布
    再次祝贺OpenStack私有云搭建成功
    vue项目快速搭建
    pdf.js使用详解
  • 原文地址:https://www.cnblogs.com/sskset/p/669357.html
Copyright © 2020-2023  润新知