如何可以检测用户在5分钟内没有操作键盘和鼠标,急!!!

bxb1280 2007-01-18 08:33:39
如何可以检测用户在5分钟内没有操作键盘和鼠标,不管用户在那个程序里面操作键盘和鼠标都认为已经操作键盘和鼠标了,时间要从头开始计。
望各位大侠给个例子看看,谢谢,如果解决了给500分都行。
BXB1280@126.COM
...全文
794 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xharry 2007-01-23
  • 打赏
  • 举报
回复
GetLastInputInfo ,只能在2k以上的系统用

据下面的文章说用 鼠标hook 探测鼠标不太准

http://www.codeproject.com/dll/trackuseridle.asp


至少我没有遇到过, 不知道有朋友遇到过麽??

我做了个例子,就上上面URL中,可以
artcpp 2007-01-19
  • 打赏
  • 举报
回复
LASTINPUTINFO lii = {sizeof(LASTINPUTINFO)};
GetLastInputInfo(&lii);
UINT iTemp = (GetTickCount() - lii.dwTime) / 1000; // 当前闲置秒数
// 闲置5分钟以上
if (iTemp >= 300)
{.....
high2003376320 2007-01-19
  • 打赏
  • 举报
回复
最容易理解的方法:

就是钩子+定时器了.

MSDN里面搜hook,没用过的话,几个小时搞定,用过的话,十几分钟搞定
dysxq 2007-01-19
  • 打赏
  • 举报
回复
GetLastInputInfo
roc_zhang 2007-01-18
  • 打赏
  • 举报
回复
键盘鼠标钩子 + timer

// 键盘钩子函数dll
LRESULT CALLBACK KeyHookProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if(nCode < 0 || nCode == HC_NOREMOVE)
return ::CallNextHookEx(g_hHook, nCode, wParam, lParam);

if(lParam & 0x40000000)
{
return ::CallNextHookEx(g_hHook, nCode, wParam, lParam);
}

::PostMessage(g_hWndCaller, HM_KEY, wParam, lParam);

return ::CallNextHookEx(g_hHook, nCode, wParam, lParam);
}

// 安装、卸载钩子的函数
BOOL WINAPI SetKeyHook(BOOL bInstall, DWORD dwThreadId, HWND hWndCaller)
{
BOOL bOk;
g_hWndCaller = hWndCaller;

if(bInstall)
{
g_hHook = ::SetWindowsHookEx(WH_KEYBOARD, KeyHookProc,
ModuleFromAddress(KeyHookProc), dwThreadId);
bOk = (g_hHook != NULL);
}
else
{
bOk = ::UnhookWindowsHookEx(g_hHook);
g_hHook = NULL;
}

return bOk;
}
yjgx007 2007-01-18
  • 打赏
  • 举报
回复
SetWindowsHookEx
yjgx007 2007-01-18
  • 打赏
  • 举报
回复
RegisterHotKey
qiujian5628 2007-01-18
  • 打赏
  • 举报
回复
hook
建立键盘和鼠标钩子 得到所有键盘和鼠标消息
你可以搜索hook 钩子技术深入学习
xharry 2007-01-18
  • 打赏
  • 举报
回复
兄弟, 顶, 我正好要问呢

:)

不知道在 OnIdle 里面处理可否
sunnyflylove 2007-01-18
  • 打赏
  • 举报
回复
看看这个
http://www.codeproject.com/dll/trackuseridle.asp

2,643

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧