zoukankan      html  css  js  c++  java
  • 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;
                }
            }

        }

  • 相关阅读:
    vue框架-基础5-vue-使用第三方ui组件快速开发页面,vuetify
    vue框架-基础4-vue-使用vue-cli工具
    vue框架-基础3-vue-component组件化开发
    vue框架-基础2-vue生命周期
    vue框架-基础1-vue包引入,指令,模板语言
    python apscheduler的使用研究
    Python中Flask框架SQLALCHEMY_ECHO设置
    通过淘宝镜像下载python3.8.3的安装包
    pycharm 报错Connection to Python debugger failed socket closed
    github fork项目,和删除fork项目
  • 原文地址:https://www.cnblogs.com/kevinGao/p/2181464.html
Copyright © 2011-2022 走看看