USB4ScanGun

PS:最近在测试点东西,要看这个项目的朋友麻烦用稍早前的版本。之后测试结果也会写在这里,或者博客中的。--2014年9月28日

USB扫描枪识别,已获取对应扫描枪返回值的测试程序。

1,部分代码来源网络,本人只是测试、搬运而已;

2,请使用 VS2010 以上的版本打开;

3,请主要参考 Demo 这个项目,其他都是测试的;

程序主要使用到了 Win 中的 RawInput 来获取硬件信息,这里请参考 MSDN 的解释。

这里大致说一下:

1,RawInput 必须在 WM_INPUT 事件除获取,这里也是 MSDN 提到的;

2,项目中的 RawInput 这个工程,接收事件是 Win Form 程序,对于 keyBoard 这项目,是 WPF 直接调用 RawInput 工程来做测试的,但是具体的消息打算自己处理,所以 Demo 由此而来,当然仅仅是改写为 WPF 来使用,期间会遇到一些问题;

Ps:下面都是说 Demo

3,原有在 WndProc 这个回调截取消息的,但是这里获取的时候就太晚了,所以在 Demo 中会用到另一个回调函数(ComponentDispatcher_ThreadFilterMessage);

Ps:关于 WPF 中 按键消息的传递顺序, ThreadFilterMessage > PreKeyDown > WndProc,实际上当你在 WndProc 中屏蔽消息的时候,其实已经刷新到响应的控件上了。

4,由于 3 的缘故,导致 在这里无法响应 WM_DEVICECHANGE 这个消息,所以后面我还是用了 WndProc 这个回调函数来做硬件拔插的事件;

5,进过测试,在 WM_INPUT 处,handle = true 是无法屏蔽消息的,必须要在 WM_KEYDOWN 处进行屏蔽,但是···在 WM_KEYDOWN 的时候是无法获取 RawInput 的硬件信息的。

6,其实我也没有能做到屏蔽指定硬件的输入信息,而是变相的做,其实很简单,在 ComponentDispatcher_ThreadFilterMessage 这里将窗体的焦点弄到一个 Labl 或者 其他静态无输入事件的控件上,然后这里会检测 扫描枪 的一个回车结束事件,这然就认为一次扫描完毕,然后之前的信息都存在一个队列中,之后就是弄出来,拼接好传到界面上显示就好了;

7,对于 Demo 来说,首先你要标定扫描枪,也就是在 子界面上获取一次硬件信息,之后才能在 主界面上响应对应的逻辑;

8,其实 在 Demo 的子界面上没有必要再实例化一次 RawInput 的,其实直接 添加一次消息获取就好了,System.Windows.Interop.ComponentDispatcher.ThreadFilterMessage +=

new System.Windows.Interop.ThreadMessageEventHandler(ComponentDispatcher_ThreadFilterMessage);

9, 8 其实是后话,各位可以自己实践。

10,对应过滤这里其实一直是诟病,目前在下是没找到 R3 层面上更好的办法来解决了,看到的是 R0 层面的,还是算了,如果有朋友能解决这个问题,请果断 push 上来!或者发邮件联系我!先谢了!

Good luck!

python获取usb扫描枪数据_GitHub - RobinGitHub/USB4ScanGun: USB扫描枪识别,已获取对应扫描枪返回值的测试程序...相关推荐

  1. python获取usb扫描枪数据线_GitHub - liz7up/USB4ScanGun: USB扫描枪识别,已获取对应扫描枪返回值的测试程序...

    USB4ScanGun PS:最近在测试点东西,要看这个项目的朋友麻烦用稍早前的版本.之后测试结果也会写在这里,或者博客中的.--2014年9月28日 USB扫描枪识别,已获取对应扫描枪返回值的测试程 ...

  2. 数据访问类用静态方法。。。当多个人调用时返回值会返回别人的?。。。特别奇怪的问题???...

    http://topic.csdn.net/t/20060212/15/4551821.html 在CSDN上也有人提过同样的问题,,也有解答..可以参考.. 转载于:https://www.cnbl ...

  3. 手把手教你使用Python抓取QQ音乐数据!

    [一.项目目标] 通过手把手教你使用Python抓取QQ音乐数据(第一弹)我们实现了获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 通过手把手教你使用Python抓取QQ音乐 ...

  4. python爬取网页json数据_python爬取json数据库

    手把手教你使用Python抓取QQ音乐数据(第一弹) [一.项目目标] 获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 由浅入深,层层递进,非常适合刚入门的同学练手. [二. ...

  5. NGSIM数据集Python处理(变道数据筛选)

    本文通过Python代码的编写,实现对NGSIM数据I-80路段小型车数据中产生变道行为的车辆进行筛选.关于前期数据的准备,可参看本人原来发表的资源和文章 NGSIM数据.zip-交通文档类资源-CS ...

  6. python爬取qq音乐歌曲链接为什么播放不出来_手把手教你使用Python抓取QQ音乐数据(第一弹)...

    原标题:手把手教你使用Python抓取QQ音乐数据(第一弹) [一.项目目标] 获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 由浅入深,层层递进,非常适合刚入门的同学练手. ...

  7. 手把手教你使用Python抓取QQ音乐数据(第四弹)(文末赠书)

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 千里之行,始于足下. [一.项目目 ...

  8. SQL 获取下一条数据

    这里假设有一张员工表,有三个字段 (ID,员工姓名,年龄): CREATE TABLE [dbo].[Employee] ( [ID] [int] IDENTITY(1,1) NOT NULL, [N ...

  9. 数据类型(数据类型简介、数据类型的分类(简单数据类型,获取变量数据类型,数据类型转换))

    目录​​​​​​​ 数据类型 数据类型简介 为什么需要数据类型 变量的数据类型 数据类型的分类 简单数据类型 获取变量数据类型 数据类型转换 数据类型 数据类型简介 为什么需要数据类型 变量的数据类型 ...

最新文章

  1. msclass 文字滚动_文字无缝循环滚动(标题向上滚动)
  2. Struts2学习入门
  3. 网络监听listen技术是什么原理?
  4. 时间和空间复杂度概述【Java _demo版】
  5. 2016电大计算机网考,2016年电大-电大计算机网考题库[].doc
  6. c语言中判断输入是否为数字_C 判断
  7. java web 的开发环境_JAVA WEB开发环境与搭建
  8. install ADT plugin
  9. HALCON示例程序high.hdev使用不同方法提取区域
  10. 破除“论文至上”!两部委发文规范SCI指标使用
  11. WP7 开发(十五)输入范围和文本框
  12. 华中邀请赛现场赛F题 Seats
  13. 计算机二级mysql大题_2016年计算机二级MySQL练习题及答案
  14. 虚拟Linux 訪问win7共享文件夹方法
  15. 内存缓存 原理 实现
  16. 黑马Python笔记3
  17. 【C代码】结构体数组初始化的相关总结
  18. 计算机显示器分辨率,电脑分辨率多少合适,详细教您电脑显示器分辨率怎么调整...
  19. 实现Excel单元格中的下拉选项和数据有效性
  20. payjs 源码_自动发卡系统(包含前台以及后台管理系统),对接payjs支付(无须企业认证)...

热门文章

  1. 给游戏或代码增加反调试功能(应用层级)
  2. 如何恢复无法修复的Visual Studio 的破损文件
  3. 黑客攻防技术宝典(二)
  4. 在做技术面试官时,我是这样甄别大忽悠的——如果面试时你有这样的表现,估计悬...
  5. html5怎么把图片做成按钮,炫酷实用的jQuery插件 涵盖菜单、按钮、图片 | HTML5资源教程...
  6. Redis内部数据结构详解(2)——skiplist
  7. 为什么要抽时间读书?为什么要写读书笔记?
  8. 统计报表 -- sql统计语句
  9. 管理类联考——英语二——技巧篇——写作——图表作文——经典方法论
  10. ArcGIS教程:再现水立方