ctmml
驱动牛犊
驱动牛犊
  • 注册日期2005-11-06
  • 最后登录2009-09-27
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望90点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:4840回复:11

wince开发键盘驱动用keybd_event发送不了字符的问题

楼主#
更多 发布于:2008-08-20 14:26
我在键盘驱动里通过使用keybd_event发送虚拟键来产生按键事件,
回车、空格、backspace等一些控制键是成功的,但用来发送数字和
字符键就是不行。和dreamzqw遇到的问题是一样的。
望指教!
ctmml
驱动牛犊
驱动牛犊
  • 注册日期2005-11-06
  • 最后登录2009-09-27
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望90点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-08-21 10:23
无人回,自己顶一下!
tracera
禁止发言
禁止发言
  • 注册日期2006-01-09
  • 最后登录2018-09-25
  • 粉丝8
  • 关注0
  • 积分-5788分
  • 威望135321点
  • 贡献值0点
  • 好评度625点
  • 原创分1分
  • 专家分0分
  • 社区居民
板凳#
发布于:2008-08-22 10:45
用户被禁言,该主题自动屏蔽!
microsun
论坛版主
论坛版主
  • 注册日期2002-11-11
  • 最后登录2014-07-18
  • 粉丝0
  • 关注0
  • 积分1052分
  • 威望1159点
  • 贡献值0点
  • 好评度848点
  • 原创分0分
  • 专家分0分
地板#
发布于:2008-08-24 13:21
好好看一下这个函数的用法,多试一下各种参数的组合,我用过,没有遇到过你说的这个问题.
学海无涯
ctmml
驱动牛犊
驱动牛犊
  • 注册日期2005-11-06
  • 最后登录2009-09-27
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望90点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2008-08-24 15:16
确实是很奇怪的一个问题,我换了另外一个BSP后就正常了。
应该是BSP的问题,但具体就不知道哪里出错。
dreamzqw
驱动牛犊
驱动牛犊
  • 注册日期2004-11-25
  • 最后登录2019-04-08
  • 粉丝1
  • 关注0
  • 积分19分
  • 威望182点
  • 贡献值0点
  • 好评度55点
  • 原创分1分
  • 专家分2分
5楼#
发布于:2008-08-27 17:08
Keybd_Event()这个函数在产生ASCII键时要求虚拟键跟扫描码一样,都为虚拟键值才行。
ctmml
驱动牛犊
驱动牛犊
  • 注册日期2005-11-06
  • 最后登录2009-09-27
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望90点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2008-08-27 18:41
dreamzqw :
是不是指
keybd_event('X','X',0,0); //按下x键
Sleep(50);
keybd_event('X','X',KEYEVENTF_KEYUP,0); //抬起x键
如此发送呢?都是不行啊。

但在另外一个BSP上通过如下发送都是正常的:
keybd_event('X',0,0,0); //按下x键
Sleep(50);
keybd_event('X',0,KEYEVENTF_KEYUP,0); //抬起x键
这个问题实在是太奇怪了。
hohohaha2008
驱动牛犊
驱动牛犊
  • 注册日期2008-09-03
  • 最后登录2009-10-17
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望101点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2008-09-04 16:03
应该是注册表里多了什么或少了什么
tracera
禁止发言
禁止发言
  • 注册日期2006-01-09
  • 最后登录2018-09-25
  • 粉丝8
  • 关注0
  • 积分-5788分
  • 威望135321点
  • 贡献值0点
  • 好评度625点
  • 原创分1分
  • 专家分0分
  • 社区居民
8楼#
发布于:2008-09-09 16:42
用户被禁言,该主题自动屏蔽!
dillonhua
驱动小牛
驱动小牛
  • 注册日期2004-07-30
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分36分
  • 威望401点
  • 贡献值0点
  • 好评度128点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2008-09-09 20:59
引用第8楼tracera于2008-09-09 16:42发表的  :
现在是数字字母都没有问题.;/[].,:也可以,
但是!@#$%^&*()这些就不行了.知道的指导一下啊,谢谢



上面这些字符是特殊字符,需要和shift配合着来按才产生的,比如!是shift+1配合出来的,所以你需要在驱动里Keybd_event(shift,0,0,0);Keybd_event('1',0,0,0);然后再shift up,1 up,这样着发,就可以了
tracera
禁止发言
禁止发言
  • 注册日期2006-01-09
  • 最后登录2018-09-25
  • 粉丝8
  • 关注0
  • 积分-5788分
  • 威望135321点
  • 贡献值0点
  • 好评度625点
  • 原创分1分
  • 专家分0分
  • 社区居民
10楼#
发布于:2008-09-10 09:34
用户被禁言,该主题自动屏蔽!
xyj8303
驱动小牛
驱动小牛
  • 注册日期2007-05-28
  • 最后登录2009-04-01
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望137点
  • 贡献值0点
  • 好评度103点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2008-09-12 17:03
楼上正解,我遇到过
游客

返回顶部