判断空闲时间是否超过阀值
来源:互联网 发布:编程猫公司怎么样 编辑:程序博客网 时间:2024/05/08 04:06
如何使用的示例代码
void CRealLoginDlg::OnTimer(UINT_PTR nIDEvent){DWORD lastTickTock = IdleTrackerGetLastTickCount();DWORD nowTickTock = GetTickCount();DWORD differSeconds= (nowTickTock - lastTickTock)/1000;//if idle time is 5s,send login message!if (differSeconds>=5 && m_isStartLogin==false && m_ctlRememberPWD.GetCheck()==BST_CHECKED){PostMessageW(WM_AUTO_LOGIN);}CDialogEx::OnTimer(nIDEvent);}
依赖项
头文件清单
#pragma onceBOOL IdleTrackerInit();void IdleTrackerTerm();DWORD IdleTrackerGetLastTickCount();
源文件清单
#include "StdAfx.h"#include "IdleTracker.h"HHOOK g_hHkKeyboard = NULL;// handle to the keyboard hookHHOOK g_hHkMouse = NULL;// handle to the mouse hookDWORDg_dwLastTick = 0;// tick time of last input eventLONGg_mouseLocX = -1;// x-location of mouse positionLONGg_mouseLocY = -1;// y-location of mouse position/** * Get tick count of last keyboard or mouse event **/DWORD IdleTrackerGetLastTickCount(){return g_dwLastTick;}/** * Keyboard hook: record tick count **/LRESULT CALLBACK KeyboardTracker(int code, WPARAM wParam, LPARAM lParam){if (code==HC_ACTION) {g_dwLastTick = GetTickCount();}return ::CallNextHookEx(g_hHkKeyboard, code, wParam, lParam);}/** * Mouse hook: record tick count **/LRESULT CALLBACK MouseTracker(int code, WPARAM wParam, LPARAM lParam){if (code==HC_ACTION) {MOUSEHOOKSTRUCT* pStruct = (MOUSEHOOKSTRUCT*)lParam;//we will assume that any mouse msg with the same locations as spuriousif (pStruct->pt.x != g_mouseLocX || pStruct->pt.y != g_mouseLocY){g_mouseLocX = pStruct->pt.x;g_mouseLocY = pStruct->pt.y;g_dwLastTick = GetTickCount();}}return ::CallNextHookEx(g_hHkMouse, code, wParam, lParam);}/** * Initialize DLL: install kbd/mouse hooks. **/BOOL IdleTrackerInit(){if (g_hHkKeyboard == NULL) {g_hHkKeyboard = SetWindowsHookEx(WH_KEYBOARD, KeyboardTracker, NULL, GetCurrentThreadId() );}if (g_hHkMouse == NULL) {g_hHkMouse = SetWindowsHookEx(WH_MOUSE, MouseTracker, NULL, GetCurrentThreadId() );}_ASSERT(g_hHkKeyboard);_ASSERT(g_hHkMouse);g_dwLastTick = GetTickCount(); // init countif (!g_hHkKeyboard || !g_hHkMouse)return FALSE;elsereturn TRUE;}/** * Terminate DLL: remove hooks. **/void IdleTrackerTerm(){BOOL bResult;if (g_hHkKeyboard){bResult = UnhookWindowsHookEx(g_hHkKeyboard);_ASSERT(bResult);g_hHkKeyboard = NULL;}if (g_hHkMouse){bResult = UnhookWindowsHookEx(g_hHkMouse);_ASSERT(bResult);g_hHkMouse = NULL;}}
0 0
- 判断空闲时间是否超过阀值
- 判断系统CPU是否空闲
- c# 判断鼠标是否空闲
- 数据库空闲连接超过最大wai_timemout时间,数据库会强行断开空闲的链接,dbcp解决方案
- shell 判断文件更新是否超过阀值的报警小程序
- 判断两次操作的时间间隔的长短是否超过20分钟
- 空闲时间
- 判断两个日期是否超过24小时!
- 判断textarea是否超过行数限制
- 判断时间是否交叉
- 判断时间是否大于一天
- 判断时间格式是否正确
- 判断时间是否为今天
- 判断时间是否存在交集
- C3P0连接池配置解决MySQL连接的空闲时间超过8小时后自动断开连接的问题
- 判断字符串的字节是否超过自定义的字节
- DWZ (JUI) 分页判断是否超过最大页数
- shell中判断文件大小是否超过指定大小
- 搭建struts2开发环境
- HttpClient 4.3教程(转载)
- 不用Visual Studio,5分钟轻松实现一张报表
- 构建Scala的REST服务
- 学习tornado:异步
- 判断空闲时间是否超过阀值
- Httpclient多线程访问
- 9.5.2 使用值和委托
- Matlab-------urlread中文显示乱码
- Unity与Gnome3 切换。ubuntu 12.04密码正确登录不进的问题
- 理解 tornado.gen
- jquery ajax 跨域访问例子
- XML基础(一)
- POJ 3979 分数加减法【数学讨论题】