[发明专利]嵌入式设备中WEB业务软件无干扰接收用户按键的方法无效
申请号: | 201210481436.8 | 申请日: | 2012-11-23 |
公开(公告)号: | CN103019699A | 公开(公告)日: | 2013-04-03 |
发明(设计)人: | 贾小波;张永强;赵付强;徐圆圆;连毅;刘飞 | 申请(专利权)人: | 郑州威科姆科技股份有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 郑州大通专利商标代理有限公司 41111 | 代理人: | 白毅明 |
地址: | 450001 河南省*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 嵌入式 设备 web 业务 软件 干扰 接收 用户 按键 方法 | ||
技术领域
本发明涉及一种嵌入式设备中WEB业务软件无干扰接收用户按键的方法。
背景技术
用户通过使用遥控器或外接键盘操控嵌入式设备中的核心业务软件,是嵌入式设备使用的基本操作方式。在基于微软WES7(全称:Windows Embeded Standard 7)的嵌入式设备上,这一操作方式仍然是用户使用该设备的主要操作方式之一,但是由于WES7嵌入式设备除了提供红外接口供遥控器使用外,往往还提供了USB接口供鼠标、键盘使用;同时WES7是多任务操作系统,用户可能会同时启动多个软件,这些软件中有一些是第三方软件,这些软件可能在某个时刻会弹出某个窗口。在这种情况下,如何实现核心业务软件能够始终正常响应用户按键(遥控器或键盘)操作而不受鼠标操作和其他软件启动退出、窗口高亮等抢夺业务软件窗口输入焦点行为的影响就是要解决的关键技术问题。
目前解决上述问题的常用技术是设法让要接收按键的软件窗口始终高亮。由于WES7在收到用户按键时,默认会将该按键发送系统当前高亮的窗口,因此目前可用的一种解决方案是:监测软件窗口高亮状态,当发现不是高亮时强制设置其为高亮。此方法一般情况下没有问题,但是由于WES7的窗口高亮状态总是临时状态,这样就需要始终检查和维护该软件窗口的高亮状态,一旦发现用户启动了其他软件或操作了其他软件窗口导致本软件高亮状态消失,就要赶紧再设置本软件为高亮状态,这样在非高亮至高亮状态的之间就有一个空闲时间,若在这个空闲时间内用户操作了按键,就会出现按键消息被目标窗口遗漏的情况。
从另一方面来讲,现在B-S架构是互联网业务的主流架构模式之一,在WES7嵌入式设备软件系统中,业务软件常常以承载WEB页面的WEB客户端软件的形式存在。由于WEB业务的复杂和多样性,有时需要两个或多个WEB窗口同时接收和处理用户按键。在这种情况下,如何实现业务软件收到按键后,将按键正确的分发给需要接收按键的WEB窗口处理,就是要解决的另一关键问题之一。目前解决这一问题的常用技术是将接收到的按键值重新组装为系统标准按键消息WM_KEYDOWN/WM_KEYUP,并通过WINDOWS API PostMessage函数投递该消息到希望接收按键的窗口。该技术对于普通WINDOWS窗口是有效的,但对于内嵌IE控件的WEB页面窗口则是无效的,表现在WEB页面窗口的WEB页面接收不到发过来的普通按键。
发明内容
本发明针对现有技术不足,提出一种嵌入式设备中WEB业务软件无干扰接收用户按键的方法,可以实现在多浏览器窗口模式下,用户操作按键后,无论浏览器窗口有无焦点,这些浏览器窗口中的页面均能正确接收到用户操作的按键消息。
本发明所采用的技术方案:
一种嵌入式设备中WEB业务软件无干扰接收用户按键的方法,通过如下步骤,完成用户按键信息从用户操作按键到目标窗口正确接收;
a、采用WES7低层键盘钩子拦截用户按键并将按键封装为按键消息发送给业务软件专用于接收用户按键消息的窗口;
b、业务软件窗口收到消息后再将接收到的按键消息解析出来并重新封装为WES7标准按键消息,同时设置当前线程键盘状态掩码;
c、然后将按键消息发送给需要按键的窗口。
所述的嵌入式设备中WEB业务软件无干扰接收用户按键的方法,实现步骤a的流程如下:
1)编写底层键盘钩子程序(DLL程序),在其中指定业务软件专用于接收按键消息的窗口标识;
2)编写底层键盘钩子的管理程序(EXE),用于安装底层键盘钩子;
3)管理程序运行时调用系统API函数SetWindowsHookEx在系统中安装该底层键盘钩子,底层键盘钩子即时生效;
4)户操作按键时,系统将按键传递给低层键盘钩子进行拦截处理;
5)低层键盘钩子收到系统传过来的按键后,将该键值和当前功能键CTRL/ALT/SHIFT/WIN的按下抬起状态封装为自定义按键消息发送给业务软件专用于接收按键消息的窗口。
所述的嵌入式设备中WEB业务软件无干扰接收用户按键的方法,业务软件窗口收到键盘钩子发过来的按键消息后,解析出当前按键和系统功能键当前状态;将当前键值封装为WES7标准按键消息WM_KEYDOWN/WM_KEYUP,将功能键当前状态与系统当前键盘状态掩码进行组合,并调用系统API函数SetKeyboardState重新设置到当前按键输入线程中,以确保系统当前键盘状态跟键盘钩子收到按键时的系统当前键盘状态一致。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州威科姆科技股份有限公司,未经郑州威科姆科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210481436.8/2.html,转载请声明来源钻瓜专利网。