阅读:1083回复:8
一个小问题!但有100分!
一般情况下可以模拟一些事件的触发,比如鼠标单击,键盘事件,这样可以在没有硬件动作的情况下模拟出硬件的效果,我想知道这种模拟的方法有多少种,我的意思是从层次上来分,比如直接调用api是一种方法,再调用底层一些的函数又是一种方法!
我还想知道是否可以在底层判断程序有没有进行模拟的操作,就是说我要知道到底这个程序鼠标点击的事件是模拟的还是硬件正在产生的,不知在驱动这一级有没有办法去判断,我不懂windows驱动,所有请大家告诉我一下,请详细点,谢谢! |
|
|
沙发#
发布于:2003-01-13 16:04
据我所知Windows的消息机制纯粹是应用层的一种技术,内核层根本就没有这个概念,起码NT/2K/XP没有。模拟的办法通常是用消息HOOK的办法,也是用API实现的,与内核无关。
|
|
|
板凳#
发布于:2003-01-13 19:40
这位大哥可能没明白我的意思,我并不是想去模拟,我只是想知道某一个事件的产生(比如键盘事件)到底是从硬件开始到驱动,再到消息机制,这样一步一步产生,还是上层模拟出来的!说白了,我想编一个程序去监控事件的产生到底是硬件引起的,还是人为模拟的!请指点一下,是否是在驱动这一层去处理?
|
|
|
地板#
发布于:2003-01-14 19:54
顶一下,难道就没有人说一说思路,当然我的想法可能有问题,请大家指正一下,谢了!
|
|
|
地下室#
发布于:2003-01-15 11:42
帮顶一下。 :D
|
|
5楼#
发布于:2003-01-15 17:27
肯定是驱动级的事情,并且是硬件相关的部分.(也可以是基于HAL级)并且需要中断.换句话说,硬件产生的是产生了硬件中断或者查询得到的结果,而后向上层发消息..而模拟的就是直接由API发消息..换句话说应用程序不知道哪个是硬件产生的,他(App)只认得消息..真正知道是不是硬件产生的只有驱动......
|
|
6楼#
发布于:2003-01-15 21:03
兄弟我也知道这个道理,现在如果想写这样一个程序可以监控键盘,监控每一个键盘消息是模拟还是硬件驱动的,说说该怎么写啊?
还有一点这样的监控肯定会影响系统速度,不知会消耗多少系统的资源,哪位高手说说想法和建议! |
|
|
7楼#
发布于:2003-03-07 19:44
写一个键盘或者鼠标的过滤器驱动,应该可以判断是否由硬件产生吧。请哪位做过过滤器驱动的大侠说说能否实现
|
|
|
8楼#
发布于:2003-03-08 01:17
必须是HAL级才能截获原始的中断。速度不会降低很多(当然你不能占着茅坑不出来)。
|
|