前言:
一般我们在某个UI界面输入内容的时候又不想人为的去键盘输入,这个时候就需要区分键盘输入和扫码枪的输入,从而禁止人为键盘输入内容,只能使用扫码枪扫码输入。就目前来说这种直插式扫码枪输入和键盘输入几乎一个道理,从本质上很难做区分。那就只能从输入过程来做判别,如下是我的个人见解。

1.找出区别:
扫码枪扫描过程是快速且很匀速的输入内容到光标指定位置。
键盘输入的过程是不匀速且间隔时间相对来说比较长。

2.代码实现:

        Stopwatch sw = new Stopwatch();
private long lastdt = 0;//记录上次输入时间值
private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
{
if (lastdt != 0)//判断是不是第一次输入
{
if ((sw.ElapsedMilliseconds - lastdt) > 50)//判断时间间隔,如果时间间隔大于50毫秒则判定人为输入
{
tBarID.Text = "";
sw.Stop();
lastdt = 0;
}
else
{
lastdt = sw.ElapsedMilliseconds;
}
}
else
{
sw.Start();
lastdt = sw.ElapsedMilliseconds;
}
}
}

3.还存在一定的弊端待完善。

最新文章

  1. Spring MVC 1
  2. 设置mariadb字符集为utf8
  3. Hibernate 配置 转(http://blog.csdn.net/b671900/article/details/39156065)
  4. Android Studio导入Project的方法
  5. 深入了解Qt(二)之元对象系统(Meta-Object System)
  6. VS预生成事件命令行 和 生成后事件命令行
  7. FFMPEG-数据结构解释(AVCodecContext,AVStream,AVFormatContext)
  8. BZOJ 1014 火星人prefix
  9. QT:窗口最小化时显示一个小浮标
  10. 【GIVENCHY商务休闲风格/白色/100%精梳棉/撞色拼接领/长袖衬衣】玛萨玛索男装网购商城
  11. Eclipse配置Git发布项目到Github
  12. 快速排序OC、Swift版源码
  13. SpringBoot实现多环境配置
  14. Linux常用命令大全(归类)
  15. Spring中@Transactional事务回滚(含实例详细讲解,附源码)
  16. windows下安装mysql-5.7.11-winx64
  17. codeforces 600E . Lomsat gelral (线段树合并)
  18. Linux运维故障排查思路
  19. C#搭建CEF(CEFGLUE) 环境。
  20. Python面试题(十二)

热门文章

  1. Linux使用tailf高亮显示关键字
  2. Vim与系统剪贴板的复制粘贴
  3. win10 校验MD5值
  4. matlab读写文件操作
  5. GoogleAdMob
  6. httpclint的传值和访问https
  7. ComPiler200002:Growing a Compiler
  8. C# 使用多线程的几种方式
  9. CF850F 题解
  10. pat题目整理