说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

VB如何使键盘、Mouse失效(JournalPlayBack Hook)

HTML文档下载 WORD文档下载 PDF文档下载
VB如何使键盘、Mouse失效(JournalPlayBack Hook)
我们常见一些导览系统或教学系统,会自动移动Mouse与Keyin字,而那个时候,我们
不管Keyin或动Mouse都没有效,直到完成了导览系统的某个动作後才让使用者可以移
动Mouse与做Keyin的动作;想做到这个,要借重JournalPlayBack Hook。

JournalPlayBack Hook,它和JournalRecord Hook合称Journal Hook,它们作用
的范围是整个System,也就是挂上这个Hook後,影响的层面不单是这个Process,而是
所有的Process,而这两Hook又不用写在Dll之中,所以很好用。

首先我们要知道由键盘和Mouse输入等的硬体讯息,会存到一个System Queue而後OS会
到该System Queue看有没有讯息在其中,若有则撷取出来,看目前Active的Window是谁
而将讯息Post给它。而挂上JournalRecord Hook时,当有讯息被撷取出来时,会先执行
我们所设定的Hook Function(在vb中,一定要放在.BAS档之中)。这可以做什麽事呢?
例如们可以Check整个系统是否有按了键盘或有没有移动Mouse(一般来说,KeyUp,KeyDown
, MouseMove等Event只有Form在Active 时才收得到,挂上JournalRecord hook後,执行
Hook的thread便能收到所有这些讯息)。再如,它既然能收到Keyboard、Mouse的讯息,那
便可以将收到的讯息记录起来(记录於Memory或Disk都可以),之後再依方才的顺序重新
将讯息放送出来,可重新执行方才的动作(这不就是巨集的作法吗),或许
它叫JournalRecord便是这个原因。再来便是播放记录讯息的问题了,如果一面播放,一
面有其他讯息插队(如移动Mouse),那就不对了,所以JournalPlayBack这个Hook它会
让Mouse、Keyboard都失效,当OS 要求读System Queue时,便会启动这个Hook,就在此
时,我们可以把方才记录起来的讯息丢出一个出来,OS再要求读System Queue时,再丢
下一个讯息,如此达重播的效果(所以才叫JournalPlayBack),正因它会让键盘、Mouse
失效,拿它来做导览、教学系统的自动Move Mouse或文字显示是最适合的了。

Mouse的自动导引系统制作方式,可参考如何自动移动Mouse

'以下在.Bas中
Declare Sub Sleep Lib "KERNEL32" (ByVal dwMilliseconds As Long)
Const WM_MOUSELAST = &H209
Const WM_MOUSEFIRST = &H200
Public Const WM_KEYLAST = &H108
Public Const WM_KEYFIRST = &H100
Public Const WH_JOURNALRECORD = 0
Public Const WH_JOURNALPLAYBACK = 1

Type EVENTMSG
message As Long
paramL As Long
paramH As Long
time As Long
hwnd As Long
End Type
Declare Function SetWindowsHookEx Lib "user32" Alias _
"SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, _
ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Declare Function UnhookWindowsHookEx Lib "user32" _
(ByVal hHook As Long) As Long
Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, _
ByVal nCode As Long, ByVal wParam As Long, lParam As Any) As Long
Public hNxtHook As Long ' handle of Hook Procedure
Public msg As EVENTMSG

Sub EnableHook()
hNxtHook = SetWindowsHookEx(WH_JOURNALPLAYBACK, AddressOf HookProc, App.hInstance, 0)
End Sub
Sub FreeHook()
Dim ret As Long
ret = UnhookWindowsHookEx(hNxtHook)
End Sub
Function HookProc(ByVal code As Long, ByVal wParam As Long, _
ByVal lParam As Long) As Long
HookProc = CallNextHookEx(hNxtHook, code, wParam, lParam)
End Function

'以下在Form中,需求:一个Command1, 一个text1
Private Sub Command1_Click()
Dim str5 As String, len5 As Long, i As Long

Call EnableHook
str5 = "这是一个测试JournalPlayBackHook的程式"
len5 = Len(str5)
For i = 1 To len5
Text1.Text = Mid(str5, 1, i)
Text1.Refresh
Sleep (200)
Next
Call FreeHook
End Sub

Concurrent并发库常见问题总结 Android数据库SQLite性能优化技巧 Android开发之Java设计模式基础篇 Android开发之Java设计模式入门篇 Android开发之Java设计模式 Android开发之Java并发包集合类性能分析 Android开发之Java集合类性能分析 Android开发之Java虚拟机原理和内存分配 Android开发之Java基础系列教程目录 Android Theme主题样式开发注意点 Android 3.0开发用的平板推荐 android.resource://这个Uri你知道吗 ADT插件的10.0.1必须要Eclipse 3.5才能升级 Android线程优先级设置方法 Android Zip文件解压缩代码 Android开发之设置断点单步调试 Android裁剪图片最简单方法 Android平台待开发软件列表 Android开发知识-3月13日总结 Android平板开发注意点 Android 3.0自带的天气预报例子代码 Loader和Fragment使用示例代码 LoaderManager - Android 3.0新特性 帮助ADT改进DDMS中的Logcat中文乱码问题 Fragment API将兼容Android 1.6到3.0 通过Linux Shell实现Android横竖屏切换 Android高手应该精通哪些内容? Android 2.2开始resources.arsc有改变 分析你的Android ANR错误 API Level对照表,更新至2.3.3 ProcessDialog结合Thread处理耗时操作 高手请问 拉格朗日算法VB=>BCB 求ASP的字符串比较函数. 找C++BUILDER高手!! 我在做演示光盘,用camtasia录制的屏幕图象,可是在客户的机器上播放不出来,在线等待,解决问题马上揭贴! fastreport如何不进行预览而直接打印! 不使用下拉数据窗口,如何实现输入产品代码即可显示产品名称 大哥救命啊 一个简单问题,在一个Win32 applicaion 中如何使用CString变量! 在线等待! 倒霉!!!平白无故被副总扣了100点! 我高中的班主任 JBuilder的爱好者,请留下您的联系方式!谢谢,让我们共同进步! 未指定默认数据库驱动…… VC中如何添加数据库支持? 栽ejb-jar.xml中部署的Ejb QL怎么和Home接口中声明的查询连接起来,必须以ejbSelect开头吗? 如何通过程序调用荧光笔操作?急,在线等!高分相送啊! 表格宽度 发现我的作文水平如果参加今年高考能得满分(仅限作文) 送100分,JB7+JBoss下,用CMP方式建两个EntityBean,比如DIfsZxx(主键所在实体),DIfsZxxRw(外建所在实体),当两者之间关系设为。。。。 谁能够告诉我所有ACCESS数据类型的英文名字?偶在VB中有用到! 请问如何才能使用asp连接foxpro数据库,使用oledb 启动出现找不到windows\system\service.vbs怎么回事??但进入系统正常,如何去掉??? Datagrid!!! 大家能不能推荐一个免费个人主页啊。 大家来帮我看看PHP连接ACCESS数据库的问题! 大家讨论一下这种软件的开发机制和速度优化机制,有没有可能进入代理内部? 放分拉,关于struts的问题,如何在action类中调用ApplicationResources.properties中的信息!!进者有分!! 如何基于对话框打印表格(比如个人简历)在线给分! 今天刚装了新的内核,所以写出过程供大家参考! 一个急需要解决的问题??? VC下如何接收COM+事件 妈妈,女儿对不起你 jbuilder乱码,在线求解 请教一个有难度的代码,江湖救急啊! 在线等!!! 编写一个短信中心,必须要向服务商拿哪些参数? 简单问题:关于ModifyStyle 大家有遇到这种情况吗:"使用jsp无法实现功能,而要被迫使用servlet"? 自己设计VCL组件时,怎样定义对象类型的属性 ? 关联算法的一个问题,大家共同讨论啊 奇怪的问题:高手来看看! 急,关于有状态会话bean的概念问题 关于mediaplayer控件的一个问题 如何让一个表格底下呈现阴影的样式 关于OBJECT哪位大虾知道,赶快进呀!帮小弟解决问题呀!:) 关于UNC ? 请问如何进行这样的操作:察看数据库中的数据,如果数据与edit1.text相同,则showmessage,如果不同,则添加。 拜托大侠们,帮我找个WIN98二版的序列号,急!急!在线等待! To:kane (城里人) 开帖加分! 我想在网站上实现3D家居展览,该如何做?需要使用哪些软件开发? sql 语句的问题。。。。。。 怎么黑对方的计算机---局域网!!!!!!!!!!!!!!!! 7月20考试,conversation怎么提高?conversation总是错很多,感觉比lecture快,来不及记笔记,有些细节题总错,还把握不好出题点,怎么办?请大家指教, 帮我把“快开学了,收拾一下心情,迎接新学期咯”改成可爱版本的,可以改字,但是有符号的尽量用符号!弄卡哇伊一点啦.能卡哇伊就再卡哇伊一点.. 跪求 RT阴险 坏笑 拥抱 爱你 急,快来帮我,本人数学不好 我是一名学习还不错的学生,我每天都非常努力的学习,非常勤奋,我认为学习是快乐的,只是最近的情绪不好,每天晚上都没有看书,导致现在的我都不知道我自己为什么要那么勤奋的读书,每天也 女生发调皮表情的意思是什么?如题 在直四棱锥ABCD-A1B1C1D1中,AA1=2,底面是边长为1的正方形,分别是棱B1B、DA的中点.(1)求证:BF//平面AD1E (2)求证:DE垂直平面AEC 用不寒而栗和不翼而飞和草菅人命和不绝如缕和立竿见影造句. 平行四边形的概念怎么得出 商女不知亡国恨,隔江独唱后庭花写的是哪一处名胜? 有首歌 我只说得出几句 ‘行驶在城市的边缘 努力把情绪抛很远. 函数y=log3 (ax²-2ax+1)的定义域为R,则a的取值范围是y=log3 (ax²-2x+1)式子写错了 西西 人们在下雨天很容易打瞌睡 下列原因中错误的是人们在下雨天很容易打瞌睡,下列原因中错误的是:A.下雨时发出雨声属于白噪音,是天然的 安眠曲B.雨天气压低,交感神经不给力C,雨天时,褪黑 有没有人喜欢寒冷?我喜欢 y=sin(-3x+1)的单调增区间 打瞌睡是由什么原因组成的 最上面那题,下列各式是否有意义?为什么? “不知所措”造句 (英语)看图,用正确的反身代词完成对话. 全国卷的数学 难不难啊 要用呀,打心底感受大伙了2G 由于数学考砸了,数学课代表被撤职了,我该怎么办? 不翼而飞的造句我在看书时看到全身的疲倦不翼而飞 说是错误的 不翼而飞比喻东西突然不见了.也比喻事情传播得很迅速百科里面还有造句是 我的铅笔不翼而飞为什么疲倦不翼而飞不行铅笔 要用呀,打心底感受大伙了9f 我第一次数学考得不好.班主任同时是数学老师,于是辞职,老师说我还行叫我不要胡思乱想没答应,这是怎么回事 用200个成语造句,每句字数不少于50字,哎,只郁闷,帮帮啊,都组好了50多个了,实在是想不出来了 请问一下大家谁知道小学生如何练习写字?要用呀,打心底感受大伙了9f 上课老打瞌睡怎么办?我上生物课和数学课的时候总是打瞌睡,掐自己也没有用,怎么办? 68个人坐在20辆车里,而且每辆车最多包含4个人,那么问:确切可能包含68个人当中的一个人,这种情况下最大可能的车的数量是多少?A:2B:3C:4D:8E:12 木、公、卒、中加什么共同偏旁都能组成新字 平行四边形有几条高? 尔尊是什么意思 我想养一只鼠,可不知道养哪种,珍珠鼠、小仓鼠、荷兰鼠哪个最好?哈哈,这么多答案,叫我听谁的好啊! 在三角形ABC ∠C=90° 且AC=BC=3点M满足向量BM=2向量MA 则向量CM于向量CB的乘机是? 邓丽君的经典歌曲 求 y=sin(-3x+π/4)的单调递增区间,遇到问题如下,我一开始是直接用2kπ -π/2 ≤ -3x+ π/4 ≤ π/2 + 2kπ求的,不知是否正确.然后老师说要把原式变成 y= -sin(3x-π/4),再有 2kπ+ π/2 ≤ 3x-π/4 ≤ 3π/2 + 考数学心态非常不好我考数学时心态非常不好,非常紧张,手也在发抖,非常害怕考不好,本来也考的不怎么样,每次也就是六七十分,一紧张,会的也忘了,有一阵子该紧张到胃痉挛,怎么办?我真的非 邓丽君最好听的歌妈妈很喜欢她的歌她这个年纪都是喜欢什么样的歌30首之内就OK了 详细的问我要短文! “佛”里的单人旁,能不能换成其他的偏旁? 地下城物理暴击与物理背击加满好不?如题 我是剑魂,用光剑,很多人说加满,但我没用过,加满这个攻高不,两个一起加满大概需要对少SP,请详细说明, 英语翻译 平行四边形有几条底?几条高? 地下城物理暴击加多少?暴走加满了,还用加吗 文章末尾有提问 若(2a^mb^m+n)^3=8a^9b^15成立,则m= n=(急)帮帮小弟吧.不不,是小妹.呜呜 将20%的食盐水200g,稀释到10%,可加入5%的食盐水多少克 "杨"字的另一半是什么字."木"字旁,旁边的字 小孩爱捡地上的脏东西吃怎么办? 若(2a^m*b^m+n)^3=8a^9b^15 则m= ,n= .求回答, 不知所措造句 求第20题的答案! 已知(1/2a^m+1b^n-1)^3=1/8a^9b^12,求m和n的值 不知所措怎么造句 请帮我数一下[天安门]有多少笔画?请帮我数一下[天安门]有多少笔画. (-10a^m+3b^n-8a^m+1b^n+2-2a^mb^n+3)除以(-2a^mb^n-1)的结果是不是5a^3b+4ab^3+b^4 用“恐怕”造句 用“不知所措”造句用“恐怕”造句用“不知所措”造句 2012年5月20日人力二级 实操技能 请问同样考这个的同学,简答题的三道题分别是什么题目啊?如题简答题的题目分别是什么啊? 将一张长60公分.宽40公分的止,简成大小相同且边长都是整数公分的正方形,正方形的边长可能是多少/最长是多少公分? 用不知所措造句,怎么造? 贵州遵义干部群众坚决拥护对廖少华进行中日韩共用常见汉字国际学术研讨会召开快讯:首都航空JD5662长沙飞杭州港嫩模当街拆胸罩底裤 尺度之大吓坏路美主播为“杀光中国人”言论向示威者鞠中国企业助力几内亚“造城”梦大师作品巴黎展现“美丽中国”土耳其:中国当代建筑展展现“蓬勃中国中组部:领导干部退休后三年内兼职须经从严规范领导干部在企业兼职任职朝鲜民众喜迎土豆大丰收 数量多到让人美被爆在驻华使领馆搞监听美媒:十年后大学啥样? 网络授课 学巴基斯坦愿率先加入中国空间站昔日嫩模兽兽近照 皮肤松弛显老态越来听中国学者回击菲“九段线”质疑贵阳小学现黑板报外包 评论称扼杀学生受吉林地震影响 哈尔滨铁路局紧急扣停青岛涉黑头目张韶军一审死刑 其余16韩国总统朴槿惠:将查清国情院涉嫌干政美媒称奥巴马支持率跌至新低 挫折积累俄罗斯各地举行活动庆祝“人民团结日”北大方正承认被调查McArthurGlen进京推介葛优为《一步之遥》“拼命”中石化称是为保护世界遗产央企改革概念股大涨回CBA须和北京签约“最美准新郎”病房举行订婚仪式春饼宴村里别具一格的“村mall”平谷太务粉条吃出怀旧味道从盯紧官员“老赖”入手解决执行难曹云金收到春晚邀请卡国家发改委公布首个应对气候变化专项规路边停车遭涂鸦扔砖韩车企吹牛被罚3.5亿美元旅游卫视启动《最美中国》《东归·印象》亮相京城埃尔克森有望续约恒大F-35首降航母成“里程碑”孙悦化身“梦想改造家”昨日送别京城最老剃头匠
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘