系统一定时间不响应鼠标键盘消息后自动注销功能

lc8080 2010-04-23 03:47:55
代码基本完成,但功能上有些问题,问题描述如下:

1.主程序为一对话框,在对话框中加载DLL安装鼠标键盘钩子,设置注销时间 TT;
2.在DLL中设置全局鼠标键盘钩子,钩子函数一有消息就刷新时间变量 Time;
3.创建一个线程监视Time值变化,如当前时间减去Time超过预设时间,就向主程序发送自定义消息
4.主程序接到消息后自动注销自身

出现问题地方:
钩子函数中刷新时间:Time = clock();
线程中监视时间:if(clock() - Time > TT) PostMessage(WM_MSG, 0, 0);
当主程序获得焦点时:在线程中读取Time值正确,鼠标键盘TT时间不用后自动注销主程序。
当主程序失去焦点时:在线程中读取Time值为0,无论鼠标键盘是否使用都在TT时间后注销主程序。

求各位帮帮忙,给点意见!!!
最好是留个信箱,我把程序发过去,帮我调调!!
谢谢各位!!
...全文
103 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
MoXiaoRab 2010-04-24
[Quote=引用 4 楼 cnzdgs 的回复:]
如果你只是要检测输入空闲时间,用GetLastInputInfo即可,不用SetWindowsHookEx。
[/Quote]
就是。
http://hi.baidu.com/tr0j4n/blog/item/aca27611710b33f5c3ce792a.html
回复
cnzdgs 2010-04-24
如果你只是要检测输入空闲时间,用GetLastInputInfo即可,不用SetWindowsHookEx。
回复
cnzdgs 2010-04-24
共享变量必须初始化,否则无效。

另外,建议你改用WH_KEYBOARD_LL和WH_MOUSE_LL,这种方式不需要注入到其它进程,所以可以不用DLL、不涉及进程间通讯、安全软件一般也不会报警……
回复
lc8080 2010-04-23
设置共享数据了 Time 为共享数据
visualassist4680,你做过啊,给我留个mail吧 我给你发代码,你帮我看看,我现在很郁闷,弄不明白是怎么回事!
回复
visualassist4680 2010-04-23
是否没有设置共享数据段,
以前写给,没发现有焦点问题,数据都是正常的
回复
发帖
进程/线程/DLL
创建于2007-09-28

1.5w+

社区成员

VC/MFC 进程/线程/DLL
申请成为版主
帖子事件
创建了帖子
2010-04-23 03:47
社区公告
暂无公告