access用扫描枪输入_判断是否扫码枪输入的通用函数源码
【Access源码】判断是否扫码枪输入的通用函数源码分享。
现在在仓库管理,超市贩售等场合,扫码枪等扫码输入设备已经成了必不可少的工具,基本上不再需要人工去输入商品编码了。
那么我们在用Access开发软件时,能和扫码枪结合使用吗?答案是肯定的。实际上绝大部分扫码枪的原理,都是用的模拟键盘输入,也就是说只要能用键盘,扫码枪就能用。但你用Access开发的软件不能用键盘吗?绝对不可能嘛!
是否扫码枪扫码输入判别原理:
由于很多扫码枪是通过模拟键盘的方式进行输入,因此难以直接从输入来源判断。但是因为扫描输入间隔短而规律,手工输入间隔长短不一,所以通过判断按键之间的间隔时间来判断,是相对可行和可靠的方案。
在本示例中,我将基于此原理的判断功能封装为一个通用的函数 IsScannerInput 方便大家调用。
如果你对VBA编程完全熟悉了,可以直接看下面的函数源代码即可,当然也可以下载文末的示例附件。
函数源码:
Win32API函数声明
获取开机到现在过去的时间(此Win32 API函数可以精确到毫秒数)
Public Declare Function ApiGetTime Lib "winmm.dll" Alias "timeGetTime" () As Long
=============================
函数名称: IsScannerInput
用途说明: 用于判断是否使用扫码枪等扫描设备输入。在输入框KeyDown事件中调用。
输入参数:
KeyCode 输入框KeyDown事件的KeyCode参数,传址调用。
KeyPressInterval 扫描设备输入时两次按键的最大间隔时间。
RepeatCount 连续按键次数,通过判断连续多次的按键间隔时间,以增加准确度。
EndKeyCode 扫描设备输入结束标志字符,一般情况下默认是回车键,但在设备上 应该是可以通过跳线或开关进行设置的。
返 回 值: 当捕获到输入结束标志字符(一般是回车)时,如果前面RepeatCount个字符的输入间隔,满足,则返回True,否则返回False。
作 者: 红尘如烟 2012-02-14
修 改: 红尘如烟 2019-01-23
注意事项: 很多扫描枪是通过模拟键盘的方式进行输入,因此难以直接从输入来源判断。此函数的判断原理,是通过判断按键之间的间隔,扫描输入间隔短而规律,手工输入间隔长短不一。
==============================
Public Function IsScannerInput _
( _
ByRef KeyCode As Integer _
Optional KeyPressInterval As Long = 100 _
Optional RepeatCount As Long = 5 _
Optional EndKeyCode As Integer = vbKeyReturn _
) As Boolean
Static slngKeyPressTime(255) As Long
IsScannerInput = False
slngKeyPressTime(RepeatCount - 1) = slngKeyPressTime(RepeatCount)
slngKeyPressTime(RepeatCount) = ApiGetTime()
Dim lngI As Long
For lngI = 1 To RepeatCount - 2
slngKeyPressTime(lngI) = slngKeyPressTime(lngI + 1)
Next
If KeyCode = EndKeyCode Then
Dim blnScanMode As Boolean: blnScanMode = True
For lngI = 1 To RepeatCount - 1
If slngKeyPressTime(lngI + 1) - slngKeyPressTime(lngI) > KeyPressInterval Then
blnScanMode = False
Exit For
End If
Next
If blnScanMode Then
KeyCode = 0
IsScannerInput = True
End If
End If
End Function
示例下载:
在“了解更多”里下载。
access用扫描枪输入_判断是否扫码枪输入的通用函数源码相关推荐
- asp毕业设计——基于asp+access的学生排课管理系统设计与实现(毕业论文+程序源码)——学生排课管理系统
基于asp+access的学生排课管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+access的学生排课管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦.需 ...
- asp毕业设计——基于asp+access的在线人才招聘网设计与实现(毕业论文+程序源码)——人才招聘网
基于asp+access的在线人才招聘网设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+access的在线人才招聘网设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦.需要下 ...
- asp毕业设计——基于asp+access的航班在线定票系统设计与实现(毕业论文+程序源码)——航班在线定票系统
基于asp+access的航班在线定票系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+access的航班在线定票系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦. ...
- asp毕业设计——基于asp+access的校园网上购物平台设计与实现(毕业论文+程序源码)——网上购物平台
基于asp+access的校园网上购物平台设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+access的校园网上购物平台设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦. ...
- asp毕业设计——基于asp+access的电子政务档案管理系统设计与实现(毕业论文+程序源码)——电子政务档案管理系统
基于asp+access的电子政务档案管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+access的电子政务档案管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地 ...
- asp毕业设计——基于asp+access的校园新闻发布管理系统设计与实现(毕业论文+程序源码)——新闻发布管理系统
基于asp+access的校园新闻发布管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+access的校园新闻发布管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地 ...
- asp毕业设计——基于asp+access的精品课程教学网站设计与实现(毕业论文+程序源码)——精品课程教学网站
基于asp+access的精品课程教学网站设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+access的精品课程教学网站设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦.需 ...
- asp毕业设计——基于asp+access的辅导员之家网站设计与实现(毕业论文+程序源码)——辅导员之家网站
基于asp+access的辅导员之家网站设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+access的辅导员之家网站设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦.需要下 ...
- asp毕业设计——基于asp+access的精品在线试题库设计与实现(毕业论文+程序源码)——精品在线试题库
基于asp+access的精品在线试题库设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+access的精品在线试题库设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦.需要下 ...
最新文章
- 数据库期末复习之并发控制
- poj2002 poj3432 正方形个数 (hash,二分)
- 小波变换理解:消失矩、支撑长度的理解
- securecrt7.0.0合并多个窗口
- Js中caller和callee的区别
- tomcat内存溢出
- 系统架构设计师面试java架构师 面试经验分享
- 无法重新声明块范围变量。此处也声明了 。_Go 语句块与作用域
- lua循环,减少不必要的循环
- js 跨域访问 找了好长时间
- 基于SSM的图书商城
- 红盟云卡-开源的发卡网源码
- 仿链家地图找房_【前端-自如/链家/安居客-地图找房】地图api如何获取浏览器视野范围内的经纬度区间?...
- 【python 淘宝爬虫】淘宝信誉分抓取
- 知乎-知乎网站-复制文字-破解知乎复制
- 中式家装红木装修,邂逅低调的奢华
- 计算机网络传输层之SR协议
- 敏捷团队︱数字化领导力之敏捷团队建设
- 气象学需要计算机知识吗,应用气象学专业学什么
- ap cs java_AP计算机科学(AP CS)考试介绍
热门文章
- VS2013显示行号及显示程序汇编代码
- jQuery学习之五---效果
- day32 java的多线程(4)synchronized
- java ceilingentry_java.util.TreeMap.ceilingKey()方法实例
- python 渐变色柱形图_Python利用imshow制作自定义渐变填充柱状图(colorbar)
- springboot 集成mybatis_Spring Boot 集成Mybatis实现多数据源
- java etcd api_在java中如何使用etcd的v2 和v3 api获取配置,并且对配置的变化进行监控和监听...
- linux进程热更新 go,Golang热更新原理
- mysql 自定义函数 找不到表_mysql 自定义函数
- centos7 cuda测试_CentOS 7 安装 NVIDIA 显卡驱动以及CUDA驱动(自测可用)