- 积分
- 25
贡献98
飞刀30 FD
注册时间2018-8-1
在线时间15 小时
|
发表于 2011-3-18 16:41:25
|
显示全部楼层
我也遇到了这个问题:- keybd_event(0x30+idx ,0x30+idx, 0, 0);
- Sleep(1);
- keybd_event(0x30 + idx ,0x30 + idx, KEYEVENTF_KEYUP, 0);
复制代码 首先便于叙述, 按照串口打印的硬件扫描码 对键盘进行编号:
[ROW0 :COL0]为0号键 idx 为 0;
[ROW1 :COL0]为1号键 idx 为 1;
[ROW2 :COL0]为1号键 idx 为 2;
.....
[ROW2:COL1]为10号键 idx 为 10;
[ROW2:COL1]为10号键 idx 为 10;
查询了下MSDN, 说这里是模拟键盘的按键动作, 当idx 是0 的时候, 模拟的是按一次'0'[0x30]的动作,当idx是1的时候,模拟的是'1'[0x31]的动作 .
于是按照这个逻辑, 我打开winCE的记事本, 依次按 0号键 到 9 号键, 在记事本上输出 '0' - '9'; 但是下面的就不输出了.
所以我觉的 键盘扫描码到虚拟键值的映射不是由keybd_event函数来实现的.
下面我又注意到了这个函数:
v_pfnKeybdEvent(v_uiPddId, rguiScanCode[iEvent], rgfKeyUp[iEvent]);
这个函数是由函数指针一路传递进来的, 我查阅了资料, 这个函数好像是这个函数 KeybdEventCallback(
UINT uiPddId,
UINT32 uiScanCode,
BOOL fKeyUp
)
我在里面放置了打印函数, 可惜没有输出.
正如楼主所说, 我对ScanCodeToVKeyTable修改也不能正确映射....
现在 整的 我头晕脑胀的, source insight 一天了... 彻底晕死在代码里面了.
who can help me!!!
请飞凌的高手, 诸位大神,帮帮我, 8 * 8 键盘如何实现的 映射? 谢谢. 非常感谢. |
|