• 全部
  • 问答

Symbol(WinCE5) 使用keybd_event模拟扫描键

vsftpd02 2009-04-06 02:58:34
硬件设备:Symbol MC3000(作用是用来扫描条码)
系统:Wince5
Symbol MC3000设备上有一个扫描按键,按键的定义是(是厂家自己定义的,程序里按键消息名为WM_USER_TRIGGER):
#define WM_USER_TRIGGER WM_USER + 0x100 /*扫描键一按下就会触发消息WM_USER_TRIGGER*/
#define WM_USER 0x0400 /*WM_USER的值为1024,用int iVal=(unsigned int)WM_USER算的*/
我在程序里算出了WM_USER_TRIGGER键值是1280(用int iVal=(unsigned int)WM_USER_TRIGGER算的)。
现在我想用keybd_event模拟设备上的按键,自动向Wince系统发送按键消息。
keybd_event函数的局限是只能模拟键值小于等于254的,而WM_USER_TRIGGER的值为1280,而keybd_event可以模拟诸如 SHIFT+TAB之类的组合键,但模拟该键值为1280的扫描键很困难,请问大家有什么办法呢?
...全文
129 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
shuiyan 2009-04-06
试试
PostMessage(HWND_BROADCAST, WM_USER_TRIGGER, 0, 0);
回复
小赌移情 2009-04-06
WM_USER是头文件中定义的,不用你这么费事去算。(其实也不用知道)

你用了MFC? 如果是这样,要看你在哪个对象里面发送消息了,若是全局消息则应该 ::PostMessage(..., ::SendMessage(...., 注意前面两个:
还有关键是要把消息流程弄清楚,到底是谁接收这个消息作处理?那就发给谁.
回复
vsftpd02 2009-04-06
哪位帮帮忙下先
回复
vsftpd02 2009-04-06
你用的什么函数发送的?
我试过SendMessage(WM_USER_TRIGGER,0,0)或SendMessage(NULL,WM_USER_TRIGGER,0,0)都不行,PostMessage也不行的。
我用的开发工具是VS2005(C++.net)
回复
shuiyan 2009-04-06
不是“键盘事件”。请用系统消息。
回复
vsftpd02 2009-04-06
我试过 keybd_event(WM_USER_TRIGGER,1,KEYEVENTF_SILENT,0);可是不起什么作用啊
回复
vsftpd02 2009-04-06
我试过 keybd_event(WM_USER_TRIGGER,1,KEYEVENTF_SILENT,0);可是不起什么作用啊
回复
shuiyan 2009-04-06
这个扫描键发送的不是按键消息,而是用户自定义系统消息,消息ID是1280。

你要模拟,就不需要也不能用按键事件,而是直接发送WM_USER_TIGGER消息。
回复
相关推荐
发帖
嵌入开发(WinCE)
创建于2007-09-28

1.9w+

社区成员

硬件/嵌入开发 嵌入开发(WinCE)
申请成为版主
帖子事件
创建了帖子
2009-04-06 02:58
社区公告
暂无公告