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的扫描键很困难,请问大家有什么办法呢?
...全文
158 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
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消息。

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧