鼠标失去焦点多长时间,会捕获到消息,如:QQ在一段时间不操作的时候状态会变为离线

wanglu343280746 2013-07-29 02:21:52
RT,现在我的软件里需要做一个这样的功能,就是鼠标焦点不在软件上多久系统会发送通知消息,我应该怎么样捕获。类似QQ那种自动会变为离线状态。求大神帮助啊。
...全文
199 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2013-09-02
  • 打赏
  • 举报
回复
您好 我是本版版主 此帖已多日无人关注 请您及时结帖 如您认为问题没有解决可按无满意结帖处理 另外本版设置了疑难问题汇总帖 并已在版面置顶 相关规定其帖子中有说明 您可以根据规定提交您帖子的链接 如您目前不想结帖只需回帖说明 我们会删除此结帖通知 见此回复三日内无回应 我们将强制结帖 相关规定详见界面界面版关于版主结帖工作的具体办法
泥鳅不是鱼 2013-08-01
  • 打赏
  • 举报
回复
设置定时器 LASTINPUTINFO lpi; DWORD dwTime = 0; lpi.cbSize = sizeof(lpi); GetLastInputInfo(&lpi); dwTime = ::GetTickCount()-lpi.dwTime; if (dwTime >= 30000) { //5分钟没有操作 }
schlafenhamster 2013-07-30
  • 打赏
  • 举报
回复
OnIdle() 有个 参数 count,可以试试。 当 count 》 某值时。
向立天 2013-07-30
  • 打赏
  • 举报
回复
OnIdle是空闲函数 一般在这里统计空闲时间是没什么问题的 但是具体算法还是要自己设计 而且可能还是要用到计时器 当然具体的我也没做过 推测而已
wanglu343280746 2013-07-30
  • 打赏
  • 举报
回复
引用 16 楼 xianglitian 的回复:
首先GetLastInputInfo这个函数baidu一下就有了 不过我确实没用过 然后 用定时器真的是可以解决的 不过你的这个主管看来挺有个性
这个函数我用了,主管说不对,他说是个系统会主动调用那个函数,Eleven说的OnIdle()好像比较符合啊,你看合适吗?
向立天 2013-07-30
  • 打赏
  • 举报
回复
首先GetLastInputInfo这个函数baidu一下就有了 不过我确实没用过 然后 用定时器真的是可以解决的 不过你的这个主管看来挺有个性
wanglu343280746 2013-07-30
  • 打赏
  • 举报
回复
引用 13 楼 xianglitian 的回复:
[quote=引用 8 楼 wanglu343280746 的回复:] [quote=引用 2 楼 zhousitiaoda 的回复:] 鼠标失去焦点多长时间,会捕获到消息 ------------ 没有这个所谓的消息吧,要我实现的话全局钩子捕获键盘鼠标消息,一定时间内没有任何输入就判定离线。理论上应该可实现
其实我想要的是GetLastInputInfo这个方法[/quote]那你就用呗[/quote]
引用 10 楼 VisualEleven 的回复:
[quote=引用 5 楼 wanglu343280746 的回复:] [quote=引用 4 楼 schlafenhamster 的回复:] 定时器里 查焦点 是不是 本程序,再对定时器计数
这样的话会不会影响性能啊[/quote] CWinApp::OnIdle() ??[/quote] 而且说主动去监视肯定不对,也不能设定时器
wanglu343280746 2013-07-30
  • 打赏
  • 举报
回复
引用 10 楼 VisualEleven 的回复:
[quote=引用 5 楼 wanglu343280746 的回复:] [quote=引用 4 楼 schlafenhamster 的回复:] 定时器里 查焦点 是不是 本程序,再对定时器计数
这样的话会不会影响性能啊[/quote] CWinApp::OnIdle() ??[/quote]
引用 13 楼 xianglitian 的回复:
[quote=引用 8 楼 wanglu343280746 的回复:] [quote=引用 2 楼 zhousitiaoda 的回复:] 鼠标失去焦点多长时间,会捕获到消息 ------------ 没有这个所谓的消息吧,要我实现的话全局钩子捕获键盘鼠标消息,一定时间内没有任何输入就判定离线。理论上应该可实现
其实我想要的是GetLastInputInfo这个方法[/quote]那你就用呗[/quote] 两位大哥,主管说当我的软件长时间没有操作的时候系统会调用一个回调函数,他让我网上找找这个函数,真找不见啊,你们能给点指示吗?
向立天 2013-07-30
  • 打赏
  • 举报
回复
引用 8 楼 wanglu343280746 的回复:
[quote=引用 2 楼 zhousitiaoda 的回复:] 鼠标失去焦点多长时间,会捕获到消息 ------------ 没有这个所谓的消息吧,要我实现的话全局钩子捕获键盘鼠标消息,一定时间内没有任何输入就判定离线。理论上应该可实现
其实我想要的是GetLastInputInfo这个方法[/quote]那你就用呗
用户 昵称 2013-07-30
  • 打赏
  • 举报
回复
定个时就行了,不用管多长时间,1分钟没操作,你就可以认为可以了。。
mirroatl187 2013-07-30
  • 打赏
  • 举报
回复
鼠标监视 在不在那个对话框上吧!!
Eleven 2013-07-29
  • 打赏
  • 举报
回复
引用 5 楼 wanglu343280746 的回复:
[quote=引用 4 楼 schlafenhamster 的回复:] 定时器里 查焦点 是不是 本程序,再对定时器计数
这样的话会不会影响性能啊[/quote] CWinApp::OnIdle() ??
启舰 2013-07-29
  • 打赏
  • 举报
回复
用钩子试试
wanglu343280746 2013-07-29
  • 打赏
  • 举报
回复
引用 2 楼 zhousitiaoda 的回复:
鼠标失去焦点多长时间,会捕获到消息 ------------ 没有这个所谓的消息吧,要我实现的话全局钩子捕获键盘鼠标消息,一定时间内没有任何输入就判定离线。理论上应该可实现
其实我想要的是GetLastInputInfo这个方法
vcorange 2013-07-29
  • 打赏
  • 举报
回复
getlastinput 的那个函数 ,多次调用,如果前后值不一致,则说明 在动键盘 鼠标,一直保持一致则没动
schlafenhamster 2013-07-29
  • 打赏
  • 举报
回复
这样的话会不会影响性能啊 不会, 定时器 500ms 以上吧。
wanglu343280746 2013-07-29
  • 打赏
  • 举报
回复
引用 4 楼 schlafenhamster 的回复:
定时器里 查焦点 是不是 本程序,再对定时器计数
这样的话会不会影响性能啊
schlafenhamster 2013-07-29
  • 打赏
  • 举报
回复
定时器里 查焦点 是不是 本程序,再对定时器计数
wanglu343280746 2013-07-29
  • 打赏
  • 举报
回复
引用 2 楼 zhousitiaoda 的回复:
鼠标失去焦点多长时间,会捕获到消息 ------------ 没有这个所谓的消息吧,要我实现的话全局钩子捕获键盘鼠标消息,一定时间内没有任何输入就判定离线。理论上应该可实现
哦,这个钩子做起来难吗?
zhousitiaoda 2013-07-29
  • 打赏
  • 举报
回复
鼠标失去焦点多长时间,会捕获到消息 ------------ 没有这个所谓的消息吧,要我实现的话全局钩子捕获键盘鼠标消息,一定时间内没有任何输入就判定离线。理论上应该可实现
加载更多回复(1)

15,979

社区成员

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

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