现在要捕获所有点击Touch Panel的消息,这些消息包括屏幕坐标,哪种事件(KEYUP,KEYDOWN...),并把这些消息记录下来,在不改动现有TOUCH PANEL驱动的情况下有没有办法实现这个功能呀?
咦,既然有TouchPanel驱动了,怎么会连这些基本的功能都没有呢?
如果本来就没有TP驱动,或者本来的驱动没有提供这些IO接口,那么不改动是没法实现的。
处理WM_LBUTTONDOWN消息,但是,这也有个问题,就是如果还接的有鼠标的话,那么不一定是touch panel产生的。
至于WM_LBUTTONDOWN消息,这只是对一个应用程序,或者是一个进程而言.但对整个系统来说,我个人认为COVER不住.
如果说我HOOK住TOUCH PANEL的DLL,这样可以实现我的功能吗?
看看 手写识别哪里 , 系统应该通过这个东西增加了对触摸功能的截获。
晕倒……终于发现lz的问题跟他希望得到的答案完全风马牛不相及。
其实它是漫无目的地找,我前段时间已经回答过关于全屏手写识别的问题了。
LZ, 你看触摸屏的驱动程序就知道了. 比你相象中要简单的多.
简单倒不至于,但是DLL HOOK技术已经在PC上应用很广泛了,几个跳转就可以了。
在你的触摸屏程序中有DdsiTouchPanelGetPoint函数. 一般这里会有判断是TOUCH_PEN_DOWN还是TOUCH_PEN_UP状态.
DLL HOOK技术你到处都能找到,游戏外挂,病毒很多都是这个原理,详细技术要去下载,一句话也说不完
基本原理就是假设你实现一个mytouch.dll.原有驱动是touch.dll,实现所有导出函数和
1. LoadLibrary(touch.dll)
2. get touch.dll all function by GetProcAddress
3. jump and jump
如果你是X86
JMP DdsiTouchPanelGetPoint
是ARM 可以
BL DdsiTouchPanelGetPoint
或用其他跳转。
如果需要获取详细参数就做个实现体,然后直接调 DdsiTouchPanelGetPoint,就可以把它的参数从中间截取了。
如果是想钻研触摸驱动,那就抛开应用层的东西。
如果只是想写个应用程序,捕获触摸屏的所有动作,那就用HOOK。虽然wince下的hook实现稍微麻烦点,但也成熟了。
问问题最好先搞清楚自己想要什么。唉。。。