kevinGao

C#获取键盘和鼠标操作的时间的类

最近在开发项目时需要实现屏保功能,即用户在设定的时间内没有对系统进行操作时,系统将会自动进入屏保状态。

为此封装了一个获取鼠标键盘动作的类,并有一个方法可以返回用户多长时间没有操作系统的时间。

代码如下:

public class MouseKeyBoardOperate
    {
        /// <summary>
        /// 创建结构体用于返回捕获时间
        /// </summary>
        [StructLayout(LayoutKind.Sequential)]
        struct LASTINPUTINFO
        {
            /// <summary>
            /// 设置结构体块容量
            /// </summary>
            [MarshalAs(UnmanagedType.U4)]
            public int cbSize;

            /// <summary>
            /// 抓获的时间
            /// </summary>
            [MarshalAs(UnmanagedType.U4)]
            public uint dwTime;
        }

        [DllImport("user32.dll")]
        private static extern bool GetLastInputInfo(ref LASTINPUTINFO plii);
        /// <summary>
        /// 获取键盘和鼠标没有操作的时间
        /// </summary>
        /// <returns>用户上次使用系统到现在的时间间隔,单位为秒</returns>
        public static long GetLastInputTime()
        {
            LASTINPUTINFO vLastInputInfo = new LASTINPUTINFO();
            vLastInputInfo.cbSize = Marshal.SizeOf(vLastInputInfo);
            if (!GetLastInputInfo(ref vLastInputInfo))
            {
                return 0;
            }
            else
            {
                long count = Environment.TickCount - (long)vLastInputInfo.dwTime;
                long icount = count / 1000;
                return icount;
            }
        }

    }

发表于 2011-09-19 16:06  Kevin Gao  阅读(2031)  评论(0编辑  收藏  举报
 

分类:

技术点:

相关文章:

  • 2021-10-01
  • 2021-10-05
  • 2021-12-26
  • 2021-08-13
  • 2021-11-15
  • 2021-11-05
  • 2021-04-15
  • 2021-09-07
猜你喜欢
  • 2021-10-16
  • 2021-10-16
  • 2021-10-16
  • 2021-10-16
  • 2021-08-28
  • 2021-10-16
  • 2021-11-11
相关资源
相似解决方案