当前位置: 首页 > news >正文

window API判断系统是否为闲置状态

有时在应用中需要获取当前的系统状态,如果闲置一段时间将锁屏或自动登出。


代码示例


internal struct LASTINPUTINFO
        {
            public uint cbSize;
            public uint dwTime;
        }

        [DllImport("User32.dll")]
        public static extern bool LockWorkStation();
        [DllImport("User32.dll")]
        private static extern bool GetLastInputInfo(ref LASTINPUTINFO Dummy);
        [DllImport("Kernel32.dll")]
        private static extern uint GetLastError();

        public static uint GetIdleTime()
        {
            LASTINPUTINFO LastUserAction = new LASTINPUTINFO();
            LastUserAction.cbSize = (uint)Marshal.SizeOf(LastUserAction);
            GetLastInputInfo(ref LastUserAction);
            return ((uint)Environment.TickCount - LastUserAction.dwTime);
        }

        public static long GetTickCount()
        {
            return Environment.TickCount;
        }

        public static long GetLastInputTime()
        {
            LASTINPUTINFO LastUserAction = new LASTINPUTINFO();
            LastUserAction.cbSize = (uint)Marshal.SizeOf(LastUserAction);
            if (!GetLastInputInfo(ref LastUserAction))
            {
                throw new Exception(GetLastError().ToString());
            }

            return LastUserAction.dwTime;
        }


可以调用GetIdleTime()方法,返回的是毫秒。

相关文章:

  • 机器学习 -- 基本数学概念总结
  • 基于S3C2410的SD卡linux驱动工作原理(一)
  • R 学习 -- vector
  • 基于S3C2410的SD卡linux驱动工作原理(二)
  • R 学习 -- factor
  • linux设备模型中ktype的用法
  • R学习-- 数组和矩阵
  • spinlock与linux内核调度的关系
  • R学习 -- R中的five number
  • usb鼠标驱动注解及测试
  • R学习-- R中的绘图命令练习
  • Web Asp.net 中的Messagebox 判断..
  • R学习-- R连接 SQL SERVER
  • 使用AweSocket 收发消息
  • __asm__ __volatile__内嵌汇编用法简述
  • (三)从jvm层面了解线程的启动和停止
  • 345-反转字符串中的元音字母
  • Angular 响应式表单 基础例子
  • CentOS从零开始部署Nodejs项目
  • Docker: 容器互访的三种方式
  • java8-模拟hadoop
  • Java多线程(4):使用线程池执行定时任务
  • spring boot 整合mybatis 无法输出sql的问题
  • VUE es6技巧写法(持续更新中~~~)
  • 多线程事务回滚
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 试着探索高并发下的系统架构面貌
  • 延迟脚本的方式
  • 原生js练习题---第五课
  • zabbix3.2监控linux磁盘IO
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • 组复制官方翻译九、Group Replication Technical Details
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • ​Linux·i2c驱动架构​
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • #NOIP 2014# day.1 T2 联合权值
  • #宝哥教你#查看jquery绑定的事件函数
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (附源码)计算机毕业设计ssm电影分享网站
  • (论文阅读11/100)Fast R-CNN
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (算法)求1到1亿间的质数或素数
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (一)基于IDEA的JAVA基础10
  • (转)项目管理杂谈-我所期望的新人
  • .FileZilla的使用和主动模式被动模式介绍
  • .NET 3.0 Framework已经被添加到WindowUpdate
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .Net Core缓存组件(MemoryCache)源码解析
  • .NET MVC之AOP
  • .net开发引用程序集提示没有强名称的解决办法
  • .NET设计模式(7):创建型模式专题总结(Creational Pattern)