原文转自: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;
            }
        }

}

转载于:https://www.cnblogs.com/flyhigh1860/archive/2013/01/17/2864954.html

C#获取键盘和鼠标操作的时间的类相关推荐

  1. 获取键盘和鼠标没有操作的时间

    public class MouseKeyBoardOperate{/// <summary>/// 创建结构体用于返回捕获时间/// </summary>[StructLay ...

  2. 模拟键盘、鼠标操作或Windows hook 在部分软件失效的问题

    用户界面权限隔离(UIPI) 在Windows中的权限系统 除了在进程之间提供内核对象的访问保护,窗口系统还利用完整性级别来拒绝低完整性级别的进程访问/更新高完整性级别的进程的用户界面.这个机制称为用 ...

  3. .net中模拟键盘和鼠标操作

    周银辉 其实SendKeys类提供的方法蛮好用的,可惜的是WPF中不能用了,说是WPF的消息循环方式改成了Dispatcher,所以直接调用System.Windows.Forms.SendKeys. ...

  4. Windows中如何获取键盘和鼠标处于空闲状态的时间

    赵湘宁 本文的例子程序     在编写程序的过程中,我遇到了这样的需求:在基于Windows® 9x 或Windows NT4.0 的程序中,要求确定键盘.鼠标处于空闲状态的时间. 查询了有关资料文档 ...

  5. 【学习OpenCV4】在OpenCV中响应键盘与鼠标操作

    键盘与鼠标的响应 一.键盘的响应 1.1 基本知识 1.2 确定按键响应值 1.3 按键调节亮度 二.鼠标的响应 1.1 基本知识 1.2 示例程序 一.键盘的响应 1.1 基本知识   按键的读取只 ...

  6. WinAPI: GetDoubleClickTime、SetDoubleClickTime - 获取与设置鼠标双击间隔时间

    //声明 GetDoubleClickTime: UINT; {无参数; 返回鼠标双击间隔时间, 单位是毫秒}SetDoubleClickTime(Interval: UINT {依毫秒为单位的时间数 ...

  7. java 8时间操作_Java8 时间日期类操作

    Java8 时间日期类操作 Java8的时间类有两个重要的特性 线程安全 不可变类,返回的都是新的对象 显然,该特性解决了原来java.util.Date类与SimpleDateFormat线程不安全 ...

  8. 使用JS模拟键盘、鼠标操作

    //只在chrome测试过,大部分应用场景在webkit,所以不做其他兼容// 模拟键盘输入 window.inputValue = function (dom, st) {var evt = new ...

  9. Blender 显示键盘和鼠标操作

    Blender自己本身就带有显示按键和鼠标的功能,就是3D View: Screencast Keys插件. 打开 File(文件) -> User Preferences(用户自定义).快捷键 ...

最新文章

  1. Django Abstract Models使用下划线设置related_name
  2. web cache缓存设备的需求与讨论 ( Http://CACHE.MARASYSTEMS.ASIA )
  3. python基础1 第一天
  4. java原始类型和引用类型_Java中的8种原始类型
  5. 王者权志龙回归!支持爱豆壁纸少不了
  6. 【Xamarin开发 Android 系列 1】环境部署搭建
  7. java enum private_初步理解Java枚举类型
  8. kmeans python interation flag_Python自学笔记-第六章面向对象编程(下)
  9. linux越狱时手机怎么进入dfu,手动进入DFU模式并开始越狱
  10. 计算机操作系统——银行家算法
  11. redis实现计时器
  12. 英语口语考试资料Food
  13. js 获取某一年第多少天是周几
  14. 单相PWM整流器的数学模型、工作原理
  15. 2023年天津中德应用技术大学专升本通信工程专业考试大纲
  16. 收藏推荐| MacOS取证入门直播课听课笔记
  17. 面试中如何去回答原型链这个问题的思考
  18. 华为荣耀+T8950
  19. Android 备忘录删除功能,安卓手机便签删除了怎么恢复?有可以快速找回删除内容的备忘录软件吗...
  20. 解决警告: MATLAB 先前因底层图形错误而崩溃的问题

热门文章

  1. 改变路径但是不让它跳转_Vue实战047:Breadcrumb面包屑实现导航路径
  2. redis mysql主从同步_手撕Redis,主从同步
  3. python进程和线程_Python进程与线程知识
  4. c语言链表如何做成环,在C语言中单向链表环测试并返回环起始节点的实现方法...
  5. mysql单机多实例启动不了_mysql单机启用多实例的配置方法
  6. 11年瑞纳手动挡值多少钱_三分钟让你知道手中的松石值多少钱
  7. td里面字体大小怎么改_王者荣耀战区怎么改到其他地方 2020荣耀战区修改方法...
  8. 计算机二级c语言程序,二级C语言考试系统
  9. php循环输出sql数组吗,在PHP中循环SQL结果 – 没有获得整个数组
  10. sdio接口_多种接口的谷歌Coral模块,总有一款适合您~