C# 检测操作系统是否空闲,实现系统空闲后做一些操作
2015-04-13 09:49
627 查看
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 0; } else { var count = Environment.TickCount - (long)vLastInputInfo.dwTime; var icount = count / 1000; return icount; } } }
调用:
static void Main(string[] args) { Timer t = null; t = new Timer((o) => { var result = GetLastInputTime(); Console.WriteLine(result); if (result < 1*60) return; if (t == null) return; t.Dispose(); Console.WriteLine("电脑1分钟未操作!"); }, null, 1000, 1000); Console.ReadLine(); }
相关文章推荐
- C#中检测某个类(方法、程序集等各种部分)是否应用了指定的特性以及对特性的一些简单操作
- C#中Bitmap类实现对图像操作的一些方法
- C#中Bitmap类实现对图像操作的一些方法(Asp.net(C#)-放大缩小图片尺寸)
- C#检测本机是否联网 调用系统函数
- 一个操作系统的实现--文件系统调试的一些细节
- C#实现系统关机、重启、注销等操作
- C#中Bitmap类实现对图像操作的一些方法
- C# 判断系统空闲(键盘、鼠标不操作一段时间)
- C#+Mapxtreme 实现一些GIS系统基本的功能
- C# List 的一些操作 (两List元素是否想同,List是否包含在另一个List中)
- C# 判断系统空闲(键盘、鼠标不操作一段时间)
- js实现检测当前时间是否超过指定时间,而进行操作
- C# 判断 检测 access 建库 建表 文件是否存在等 数据操作 使用 ADOX
- C#+Mapxtreme 实现一些GIS系统基本的功能
- C#写的对系统用户和组操作的类(可以实现用户和组的添加、删除、修改)
- C#中的时间(判断是否是时间,比较大小百货等一些操作)
- C# 判断系统空闲(键盘、鼠标不操作一段时间)
- C#中Bitmap类实现对图像操作的一些方法
- C#实现判断操作系统是否为Win8以上版本
- C#实现操作windows系统服务(service)的方法