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


    原文转自:http://www.cnblogs.com/kevinGao/archive/2011/09/19/2181464.html

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

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

    代码如下:

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

        }

  • 相关阅读:
    Java Stream 去重对象
    CentOS7安装JDK8
    CentOS7安装Tomcat9
    MySQL 8.0 安装
    面相对象7大原则
    Spring Boot MyBatis连接MySQL数据库
    win11右键改回win10风格,win10右键改回win11风格,不用重启
    【转载】NetCore 开发实战(目录整理)
    viewState cookie session _VIEWSTATE
    外部JS得到客户端ID
  • 原文地址:https://www.cnblogs.com/flyhigh1860/p/2864954.html
Copyright © 2020-2023  润新知