5610|9

1

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

如何修改wince按键消息 [复制链接]

各位,我需要做个响应板上按键的程序,用的自带的驱动已经把板子上的四个按钮映射成方向键了,请问我有没有办法把它们映射为其他键值。这样我就可以在应用程序中通过hook截获这个键(比如F6)。我估计要修改驱动的中断服务例程,请问怎么入手?(注意不是usb键盘,是板子上的按键),谢谢了。

最新回复

学习下 谢谢;了  详情 回复 发表于 2010-3-9 08:21
点赞 关注

回复
举报

7

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
在应用程序的钩子回调函数中可以获得这个 键值 跟up or down 信号的。
        PKBDLLHOOKSTRUCT lpKBD;       
        lpKBD = (PKBDLLHOOKSTRUCT)lParam;
        switch (lpKBD->vkCode)
        {
        case 38: key = 1; break;
        case 39: key = 2; break;
        case 40: key = 3; break;
        case 37: key = 4; break;
        case 27: key = 5; break;
        case 13: key = 6; break;
        default: key = 0; break;
        }

        switch(LOWORD(wParam))
        {
        case WM_KEYDOWN: keydownflag = 1; break;
        case WM_KEYUP: keyupflag = 1; break;
        default : keyflag = 1; break;
        }
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
只需要修改中断服务线程IST即可,不需要修改中断服务例程ISR。在IST中,把扫描码和虚拟码的虚拟映射表修改一下即可
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

4
 
引用 4 楼 domworldjohn 的回复:
只需要修改中断服务线程IST即可,不需要修改中断服务例程ISR。在IST中,把扫描码和虚拟码的虚拟映射表修改一下即可

不好意思,到您博客看了下,东西不错,但是没找到与虚拟键盘相关的,请问能告诉我是哪个文章吗?
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

5
 
人笨,没办法,不过还是解决了,找到本地驱动源码文件夹,搜索VK_down 看哪里发送了这个消息,改过来就OK。
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

6
 
跟按键有关的最好是用Hook,虽说WinCE不支持Hook,但是通过获取函数的地址可以实现。
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

7
 
谢谢,不过我现在需要的是修改这个信号,比如按键按下后它会映射成F6,而我想让这个键变成F7,我已经知道如何勾住keydown和keyup信号了。
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

8
 
根源在驱动,如果能修改,则可以解决.但是影响所有按键

如果不能从驱动入手,可以考虑使用键盘HOOK,这个HOOK CE下是支持的.

我在eeworld的BLOG中好像是有相关的文章,LZ可以去看看.
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

9
 
引用 4 楼 domworldjohn 的回复:
只需要修改中断服务线程IST即可,不需要修改中断服务例程ISR。在IST中,把扫描码和虚拟码的虚拟映射表修改一下即可

谢谢,我也知道是个扫描码和虚拟码映射的问题,但是我第一次接触驱动层,能否问下IST是不是在驱动中实现的?如果不是,那一般是在那个系统文件中定义?那么修改这个映射表会不会影响usb键盘的正常使用?
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

10
 
学习下 谢谢;了
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表