C# 检测操作系统是否空闲,实现系统空闲后做一些操作
- public class CheckComputerFreeState
{- /// <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 ;
- }
- else
- {
- var count = Environment.TickCount - (long)vLastInputInfo.dwTime;
- var icount = count / ;
- return icount;
- }
- }
- }
调用:
- static void Main(string[] args)
- {
- Timer t = null;
- t = new Timer((o) =>
- {
- var result = GetLastInputTime();
- Console.WriteLine(result);
- if (result < *) return;
- if (t == null) return;
- t.Dispose();
- Console.WriteLine("电脑1分钟未操作!");
- }, null, , );
- Console.ReadLine();
- }
C# 检测操作系统是否空闲,实现系统空闲后做一些操作的更多相关文章
- 系统空闲时间判断&命名验证
一.系统空闲时间判断 需要一个自动登录注销的功能,当鼠标移动和或者键盘输入的时候认为当前用户在线,否则过了设置时间就自动退出.好在前辈们留下了这样的一个类: MouseKeyBoardOperate: ...
- C# 判断系统空闲(键盘、鼠标不操作一段时间)
利用windows API函数 GetLastInputInfo()来判断系统空闲 //添加引用 using System.Runtime.InteropServices; // 创建结构体用于返回捕 ...
- FreeRtos——空闲任务与空闲任务钩子函数
以下基础知识转载自正点原子PDF资料. 前面例子 中创建的任务大部份时间都处于阻塞态.这种状态下所有的任务都不可运行,所以也不能被调度器选中.但处理器总是需要代码来执行——所以至少要有一个任务处于运行 ...
- Linux实战教学笔记03:操作系统发展历程及系统版本选择
标签(空格分隔): Linux实战教学笔记-陈思齐 第1章 Linux简介 1.1 什么是操作系统? 简单讲:操作系统就是一个人与计算机硬件的中介. 操作系统,英文名称Operating System ...
- ssh空闲一段时间后自动断网
ssh空闲一段时间后自动断网 用客户端工具,例如securecrt连接linux服务器,有的会出现过一段时间没有任何操作,客户端与服务器就断开了连接. 造成这个的原因,主要是因为客户端与服务器之间存在 ...
- ubuntu chmod 无法更改 文件夹权限 系统提示“不允许的操作 2、linux 如何修改只读文件 3、ubuntu安装
1.ubuntu chmod 无法更改 文件夹权限 系统提示“不允许的操作 答案:需要超级用户权限 sudo 2.linux 如何修改只读文件 答案:可以使用chmod命令,为改文件提供其他的权限.u ...
- Windows系统崩溃后快速恢复Oracle数据库的妙招
Windows系统崩溃后快速恢复Oracle数据库,以下是操作步骤 假设oracle数据安装在d:\\oracle文件夹中,数据库名称orcl 1>将崩溃的数据库安装目录"d:\\or ...
- Linux操作系统常用命令合集——第三篇-系统管理操作(25个命令)
1.whoami [命令作用] 显示当前登录有效用户名称 [命令语法] whoami [选项] [常用选项] 无 [参数说明] 用户名称 [命令示例] 显示当前登录有效用户名称 # whoam ...
- inno安装卸载时检测程序是否正在运行卸载完成后自动打开网页-代码无效
inno安装卸载时检测程序是否正在运行卸载完成后自动打开网页-代码无效 inno setup 安装卸载时检测程序是佛正在运行卸载完成后自动打开网页-代码无效 --------------------- ...
随机推荐
- Enfold主题详解与实例视频教程 WordPress建站视频教程
ENFOLD主题功能强大,同样的设置也相对较复杂,希望您在学习过程中也能多多加以练习.Enfold主题介绍:目前在ThemeForest网站,Enfold在WordPress主题销售排行中第2名,可见 ...
- 使用ObjectAnimator设置动画
ObjectAnimator是ValueAnimator的子类,他本身就已经包含了时间引擎和值计算,所以它拥有为对象的某个属性设置动画的功能.这使得为任何对象设置动画更加的容易.你不再需要实现 Val ...
- Jenkins进阶系列之——04Publish Over FTP Plugin插件
说明:这个插件可以将构建的产物(例如:Jar)发布到FTP中去. 官方说明:Publish Over FTP Plugin 安装步骤: 系统管理→管理插件→可选插件→Artifact Uploader ...
- nodejs简易实现一下bigpipe
今天刚好看到bigpipe的文章,写个demo试一下: nodejs的实现: var fs = require('fs'); module.exports = function(req , res){ ...
- java线程技术6_线程的挂起和唤醒[转]
转自:http://blog.chinaunix.net/uid-122937-id-215913.html 1. 线程的挂起和唤醒 挂起实际上是让线程进入“非可执行”状态下,在这个状态下C ...
- java、java -version 可以javac没有内部命令的问题
环境变量没有配错的情况下就是path变量的值要放在最前面
- struts1日期转换处理
问题场景 最近在维护公司旧的系统(用的struts1框架)的时候,在日期处理的时候,我将日期设定为Date类型,结果报以下错误: javax.servlet.ServletException: Bea ...
- java中的字符串简介,字符串的优化以及如何高效率的使用字符串
简介 String最为java中最重要的数据类型.字符串是软件开发中最重要的对象之一,通常,字符串对象在内存中总是占据着最大的空间块.所以,高效处理字符串,将提高系统的整个性能. 在java语言中,S ...
- emmet 缩写API
http://docs.emmet.io/cheat-sheet/
- c# 多线程 调用带参数函数
线程操作主要用到Thread类,他是定义在System.Threading.dll下.使用时需要添加这一个引用.该类提供给我们四个重载的构造函数(以下引自msdn). Thread (Pa ...