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

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

Google Analytics为什么会这么快 【MDCC 2014】Xamarin深入体验营——开发实战大揭秘 【MDCC 2014】电信技术专场:运营商与开发者如何合作共赢 【MDCC 2014】高德LBS大赛闭幕式暨颁奖典礼:下一个50亿应用花落谁家? MDCC 2014移动开发者大会开幕:全生态系统齐聚 开发者成主角 蓝港互动有限公司董事长&首席执行官王峰:移动互联网泛娱乐化趋势 多盟联合创始人&总裁张鹤:多盟DSPAN助力开发者高效变现 创新工场联合创始人汪华:移动互联网时代的跃迁式增长 阿里巴巴集团UC移动事业群总裁俞永福:AMAP Inside——更专业、更开放 《程序员+》移动应用上线 启动“2014 MDCC十大人气应用/产品评选活动” 微软开发体验与平台合作事业部大中华区DX部门总经理Srikanth Raju:基于云的跨平台开发 Facebook平台工程合作部亚太区总经理张博:通过Facebook构建下一代移动应用 Vungle工程副总裁Wayne Chan:移动视频广告的未来 友盟副总裁焦岳:2014移动互联网行业趋势&大数据的行业价值与运营支持 联发科技创意实验室副总裁Marc Naddell:以小博大的可穿戴方案 用友软件股份有限公司高级副总裁谢志华:企业互联网移动化触手可及 【MDCC 2014】英雄会晚宴——厉兵秣马,再上征程 移动开发技术与平台峰会(上):流量优化、数据管理、IM、LBS与跨平台开发 【推广、盈利与投资论坛】探寻推广与盈利新趋势 【企业移动化论坛】翻山越岭,创新突围企业移动化 解读微信与开发者双赢的开放能力 2014年10月操作系统份额:Windows 8.1份额喜人,Linux跌惨了 智能硬件峰会(下):苹果、微信、小米带给移动医疗产品开发的启示 移动游戏峰会(下):从端游转型手游、如何做一款不一样的游戏 移动游戏峰会(上):小团队如何做出大制作、游戏防作弊攻防战 深圳微信开发者大会:拒绝概念 这次只谈“怎么做” AMD应邀出席HPC China 2014,重磅推出新一代Firepro-S系列高性能显卡 你就是主角,MDCC 2014交流对接活动回顾(组图) 解读最具O2O属性—哈根达斯微信企业号的成功之道 值得Java开发者参与贡献的十个开源项目 LokiJS:纯JavaScript实现的轻量级数据库 -------数据接收和发送模式的问题!(非资深程序员勿入)100分只给答的最好的 求救!关于坐标系转换问题 现在很多邮件服务器要身份验证,ASP.NET(C#)的SMTPMAIL类有设置身份验证和密码的属性吗? 怎么在基于对话框的程序中加入一幅bmp作为底图? 刚学java,碰到一问题,请 有空进来看看 showMessageDialog的使用问题 disable mainmenu控件的某个subitem怎样实现 哈哈,需要短信网关IP地址及其源代码的快来顶一下。 sybase12.0安装时的问题??? 怎么样能用asp编写使得IE打开pdf文件?在查询后怎样还能在查询的输入框里面保留查询的输入? 如何使用TreeView进行分级管理 触发器的效率问题! 寻求解决方案 组件刷新问题,UP有分 请问 虚拟目录 和 WEB站点 有什么区别? DBEXPRESS的问题!很简单 请问那里有支持中文好的jsp开发的webmail下载?很急!谢谢大家了! 我如何在程序中切换输入法 怎么把一个COleDateTime类型的变量转成time_t类型(long型)变量? 结构成员这样定义 WCHAR bString[0]; 长度为0有意义吗? 关于DLL中的函数 如何动态分配指针数组? 哪里有关于delphi多线程资料下载? 急!!!SQL2000数据库IMAGE图象数据的存取?????? 这个存储过程怎么写? D7中的这个怎不见了啊-----急急 为什么只能传递两个汉字?有解决的办法吗? 关于DLL文件中的函数 lotus菜鸟请求急就!!!!!!!! 如何动态分配指针数组? 怎样实现点击按钮,将光标所在行的某列参数传到另一个form,显示出另一个表的某条相关记录? 这句话到底有什么含义??? T-SQL连接字符串的操作符号是? 问一个送分问题。 如何得到驱动器信息? (腊肉)欢迎讨论:简体、繁体同界面显示问题 請問在水晶報表里怎樣實現這樣的設計 谁有校友录? 欢迎讨论:简体、繁体同界面显示问题 用VB写了Lable控件,但不知如何把背景是否透明的属性加入 这堆警告是什么意思? 关闭API函数? 怎么按钮的字体的颜色改变不了? 关于图像识别,急急,谢谢 用Oracle8i(个人版)连接Oracle8问题(在线) 用quickreport如何做master/detail 報表 大家请看这段代码(部分):为什么returnValue第一次返回null,第二次返回正确??百分求解 发一个笑话--跟警察牛B的人 呵 请问如何用oledb连sybase11.9.2? 菜鸟问题 请高手指点 为什么服务器端用ontlitcp后informix无法启动呀?? 往FeS04加氨水,开始看到的现象是什么后来在空气中露置,继续看到的现象是什么 迎春花的作文 1000 双缩脲试剂能用于尿液中蛋白质的检测吗? 妥尔油脂肪酸与妥尔油区别 函数y=sin(2x+π/6)图像的一个对称中心是 环戊烷多氢菲的分子式 井水烧开有白色液体井水烧开以后壶底有一层白色的块状...每次烧开水都有这种白色块状物体...但是水未烧以前是清澈的干净的水...为什么烧开以后就有一层白色的物体..如果喝了这样的水 已知函数y=1/2tan(2x+q)的图象的一个对称中心为(-帕/6,0),求满足条件的绝对值最小的q (1R,2R)-(-)-1,2-环己二胺 分子式,那里可以买到? 桶装方便面和桶装过桥米线各有各的什么缺点和优点呢? 告诉我制氯气的方法.不能用浓盐酸,浓硫酸,浓硝酸,但不限浓磷酸,稀硫酸,稀盐酸,稀硝酸.次氯酸钠可以吗? 这应该写什么了麻烦你请你告诉我 关于迎春花的作文 为什么稀释浓硫酸时要把浓硫酸倒进水中? 写出下列化合物硝化反应的主要产物1.苯酚2.硝基苯3.苯甲酸 下列离子Fe3+ Cu2+ Ag+ Fe2+ Hg+按氧化性排列顺序为? activities from following HR processes什么意思?RT 为什么下列化合物中,第一个环更易发生硝化反应两个化合物均是在第一个环易发生硝化反应。 上班族午餐带饭,用什么样的保温饭盒比较好? 距离产生的到底是什么?我觉得两个人分开久了,产生的一定不是美,是隔阂,是不信任. 极地汪洋是什么意思麻烦你务必告诉我i 在电解池中阴极放电时,氧气放电能力与Ag+,Cu+等金属活动性顺序表中的金属相比谁更强? 混沌的解释是什么?要的,谢谢啦! 它发生硝化反应引入一个硝基时,产物只有一个硝基化合物我想知道.当看到这个条件时.我们能从中得到什么 或者知道什么 钠会和双氧水反应吗? 如何确定该结构的相对构型 拉布拉多黄还是黑色多 迎春花作文21211221122 用E/Z法确定构型都说是按照官能团的优先次序来看是否一致,我有如下问题是否卤素次于烷基同样是卤素,BR和CL的优先次序怎么样双键是不是优于烷基H是不是比任何都要劣 人生执着什么 混沌与秩序~英雄战歌,那个英雄最值得购买? 晶体硅和sio2晶体中的si原子为什么也是sp3杂化 OF2是极性分子,可以判定其分子构型为”V”形结构吗? 想变白反倒变黑了~怎么回事?最近白天用美加净珍珠银耳霜,晚上用片仔癀珍珠膏,一个多星期了,这几天发现有明显的黑了一个系号!:crab-1-)怎么回事嘛! 现在每天我还用白醋兑水擦脸.据说美白 氯气制取氯气与水反应生成HCI和HCIO,HCIO分解成HCI 和氧气,那氯水的酸性会增强吗 能否由氯水加热直接制备氯气?如果可以要注意事项有哪些 井水含有什么物质?它跟自来水一样吗?我家的井水对洗衣粉、肥皂,很容易过清,用自来水洗干净手上的洗衣粉洗很久都是很滑,但用井水却一瓢水手上的洗衣粉都去掉.为什么呢? 毕赤酵母有细胞壁吗?如果有的话,细胞壁的主要成分是什么呢?能有溶菌酶降解吗? 美女hr什么意思 在混沌与秩序之英雄战歌中,请问那个英雄比较厉害,推荐买哪个? 迎春花的作文要700字,不要“一到春天,百花仙子就往地上撒出许多的花蕊,而最娇小、最芬芳的花肯定当属迎春花喽!迎春花是在三月份开...”和“看着看着,我才想起来我不是迎春花,我是在看 函数y=-2tan(2x+π/3)的图像的对称中心 女人下面变黑了是怎么回事 山东省济宁市新高二化学学必修几山东省济宁市新高二化学学第几本?选修四还学吗 地质构造理论当中的‘活动论’和‘固定轮’的区别是什么 脂肪酸甲酯的磺酸盐类表面活性剂大家好,我是北京化工大学的研究生,现在做一个关于脂肪酸甲酯的课题,最近有一个疑问想请教大家.我现在有50%的液体脂肪酸甲酯磺酸钠(液体MES)从喜赫石 甲苯为什么呈黄色 枕状构造为什么能够确定地质年代?如上我差点忘了。放射性同位素可以用来确定火成岩石的绝对年龄。稳定同位素好像是判断岩石的物质环境与来源。 混沌与秩序之英雄战歌出装色龙,水人,12B出装.跪求大神指点 一道物理竞赛题 行星的退行速度和离我们的距离成正比即v=Hr H为哈勃常数.假设宇宙大爆炸个星体以不同的速度想外匀速运动,我们位于其中心则速度越大的离我们越远 用上述理论确定宇宙的 初学疑问 高温下SiO2与碳酸盐反应生成CO2高温下SiO2与碳酸盐反应生成CO2 是不是假设没有高温条件能发生这个反应就能得出硅酸强于碳酸?但实际碳酸强于硅酸,反应能发生是因为有高温? 农村很多地区使用的井水属于...A.陆地水B.地表水 为什么那么爱气求大神帮助 怎么看两个离子会不会发生氧化还原反应 请教高一离子反应和氧化还原反应, 别人气我我气别人行不行?谢谢了,大神帮忙啊 金属键里静电吸引和 阴阳离子通过静电吸引所形成的化学键,叫离子键 我想问为什么是静电,而不是电 1.石油磺酸盐和脂肪酸相比有哪些特点? 已知函数1/2tan(2x+φ)的图像的一个对称中心为(-π/6),求满足条件的绝对值最小的φ 力分解遵循的规律 吉林前郭地震灾区已发现2户房屋倒塌、江苏全省出现液态奶供不应求 物价上涨调查显示逾半受访香港公司明年平均加薪中国最后一个未通公路的县墨脱今日举行通讯:通往“高原孤岛”的“生命线”高薪由五毛一块凑起 过万很少聚焦激发社会投资活力:用改革撬动“活快递哥倒在送货路上香港官员:监护人代双非儿童买房应被豁复旦大学研究:PM0.5“杀伤力”盖传美国在台北设监听站 台方回应:台美宁波实现大灾之后无大疫 传染病例同比南京:空气质量不达预期将人工增雨消霾南京:承诺绿地不兑现 开发商将受处罚宁波市将新启用一批电子警察规范行车秩《温家宝谈教育》首发 卸任总理后首次孟加拉国列车脱轨致两人死亡诺基亚亏损大幅收窄 手机总销量同比下俄罗斯达吉斯坦共和国首府发生爆炸致1吉林前郭震区移动通讯中断 受灾情况正印度长途巴士车祸后爆炸 45名乘客被被控合同诈骗内蒙古商人郑小平当庭否认摩托艇花式表演首现岐江10%老总年薪近50万硕士年均14万突袭鹤山彩虹岭“围剿”偷猎者三合颐和温泉城进展顺利爱ME公园小学幼儿园同时动工三季度广州住宅租房市场量跌价涨基础养老金将提高至100元/月1.28万人明日开走江马集资诈骗等九罪或免死佛教徒巴乔 开办欧洲最大的佛教中心宝安1600辆公车要拍卖罗球锐:我们一直在前进佛山成立筹备小组 备战“较大的市”南巡“恒华”高尔夫公开赛开赛年度最受消费者欢迎楼盘2中山法院上淘宝“卖房” 石岐洋房七五舞动人生 台山成立健康舞义工艺术团七大核心竞争力护航欧派大家居航母去看航展 尽量别用车载导航读书月宝安凤凰书院每周六邀请专家开讲
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘