如何实现对键盘输入的拦截? 求助:我在做一个程序,目的是在后台实现对键盘输入的字符进行拦截,比如说在一个应用程序中的一个文本框中我输入一行数字,然后由应用程序生成一个文本文件,要求是在生成文件前我要先对这个数字进行一下判别,即将此数字发送到server进行判别,如果是我要,留下来发送给应用程序生成报告,如果不是则不给应用程序.我的想法就是在输入文本框前就进行拦截,在输入文本框后拦截会更麻烦.望有哪位高手给予指点?不甚感激. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我估计也要用键盘钩子,但是要在基于文本框输入的应用程序前拦截键盘输入,并判断,用钩子我不怎么会用,能否给出相关源码?听说好想要用到什么buffer,望高手指点! 被拦截的那个程序是你写的?那还用什么HOOK啊。直接处理即可。。如果不是也可以不用HOOK,但是相对麻烦点,,,,你去网上找找KEYHOOK.DLL的代码,但是是C++的还得改,偶不会。其实不HOOK也成,得到键盘输入,然后发送给输入框指定的消息来改变它的文本实现过滤即可 zcsor(偶业余的斗胆写点blog)~~~~~~~~~~~~这位大虾正说清楚了吾意,被拦截的那个程序关键不是我写的,是我写的就不用拦截这么麻烦了,不知道后面的哪位如果能够看到回贴,麻烦再说详细点,我用的是VB,不是C++哦,主要就是对一个应用程序进行拦截后再过滤输入号码,就是这么简单,可是偶不会,请教各位大虾了! 你这个问题说起来简单,但有很多问题你没有考虑,首先你要用findwindows()等API函数获得该应用程序的句柄,然后获取该文本框的句柄,现在你有两个选择处理该问题,第一是用API获知该文本框是不是获得了输入焦点,如果获得了输入焦点则用sendmessage() API返回该文本框内容然后判断,同时封锁该软件的其他部件不能获得焦点(具体不清楚你何时生成文件,我假设你输入完数字后按一个回车表示输入完成),当允许生成,发送一个回车消息,不行继续等待。第二种方法是,建立全局键盘HOOK,首先确认输入框获得焦点,然后开始记录所有键盘事件,当检测到回车键则先吃掉该消息,返回截取信息作分析,若符合发送回车消息,不符合继续等待并记录。 luxu365说的比较清楚,有没有更详细一点的,最好有源码,小的是个初学者,在此谢谢luxu365的回复!如luxu365所说,那个应用程序窗口的句柄应该是一成不变的吧,不会随机变化吧?想获取一个窗口句柄可能比较简单,看到网上有好多相关资料,如果我想获取那个别人做的应用程序的文本框的句柄应该怎么获得啊,有谁知道能告诉我?我给追加分!感激不尽 这个我影镜说得很清楚了,关键的思路和API都有了,你应该去下载一个API大全,察看Findwindows()、FindwindowsExA()、Sendmessage()、keybd_event()、CallNextHookEx()、GetKeyboardLayout等API函数的具体使用方法和功能,源代码还是自己写吧,自己研究出来的还是比较好的,我只是提供一个思路而已。另外应用程序的句柄是在程序启动时由操作系统随机分配的,不是固定的,所以要用到上列函数中的几个获得这个句柄,关于键盘HOOK的问题你可以查看我回答的另外一个帖子。另外记得给分^^http://community.csdn.net/Expert/TopicView.asp?id=5355794 VB SQL,对access进行操作,对象打不开,怎么回事? 用vb的shell命令调用的问题 有人用过Pci16pr控件吗? 如何取得一个月的最后一天 如何退出当前窗体 初学vb,想求vb开发系统的例子 VB中如何调用.Net编写的DLL文件中的函数 (求教)怎么将TXT文件中的数据导入到VB中? 和VB不相关的问题,呵呵,这里热心人多~~~所以~~~~~ 使用ocx时,如何在设计阶段用鼠标拖动时能改变ocx中控件的大小。 请问高手:托盘的右键菜单项图标能否使用真彩图标? 想做一个组合控件,一边输入文本,一边就根据输入的文本对数据库进行查询
这位大虾正说清楚了吾意,被拦截的那个程序关键不是我写的,是我写的就不用拦截这么麻烦了,不知道后面的哪位如果能够看到回贴,麻烦再说详细点,我用的是VB,不是C++哦,主要就是对一个应用程序进行拦截后再过滤输入号码,就是这么简单,可是偶不会,请教各位大虾了!
如luxu365所说,那个应用程序窗口的句柄应该是一成不变的吧,不会随机变化吧?想获取一个窗口句柄可能比较简单,看到网上有好多相关资料,如果我想获取那个别人做的应用程序的文本框的句柄应该怎么获得啊,有谁知道能告诉我?我给追加分!感激不尽
http://community.csdn.net/Expert/TopicView.asp?id=5355794