关于区分键盘输入还是条形码输入的有关问题,下载了一个号称非计算输入频率的方法,但不是C++builder版的
关于区分键盘输入还是条形码输入的问题,下载了一个号称非计算输入频率的方法,但不是C++builder版的
近期有这个需求,判断到底是键盘输入还是扫描枪输入(可不考虑Ctrl+V),在下载里面找到了一段示例代码,如此描述:
“附件代码演示了如何屏蔽键盘输入,只能通过读卡器或者条码枪读入系统。
目前大家使用的办法是通过输入间隔时间来控制,看看国外高手是如何处理的。”
下载地址是这里:http://download.****.net/detail/cloudlu/2663007
颇感兴趣,下载后发现不知道这是什么工程文件,.Net的么?没用过VS,所以不知道里面这堆文件的关系,没能搞明白。能不能有明白人给讲讲用的是什么原理?或者给出C++builder下的代码更好:D
------解决思路----------------------
先说原理,扫描枪地是把字符发送到键盘缓冲区地,所以这样扫描枪和键盘按键没有区别
数据一旦发到缓冲区就很难办地,神仙也不知道是键盘发地还是扫描枪发地了
------解决思路----------------------
一般地最简单地技术可能会用按键间隔时间来判断是不是键盘按键,因为扫描枪是很快速地,在很短地时间内将一长串数据输入缓冲区,并且每个字符的间隔时间超短
而人手输入是不可能这个均匀和快速地,尤其是在5位以上数据时,怎么地速度也不能完全一致
这样第一个方法就是判断输入地总时间,和每个字符地输入间隔,这个是很容易判断地,也有一点点准确性,但不是完全准确滴
第二个就是监控串口了,需要判断出键盘和扫描枪,注意一点,USB扫描枪和USB键盘也会以串口的方式出现
当接受输入地控件接到数据后,将前面监控到地串口数据和EDIT中的数据比对,
有两种方式,一是你判断出了键盘,那么就是!=,判断出了扫描枪就是==
这样就能准确地知道是扫描枪还是键盘了
不传之密啊,具体代码就不提供了
分来,不来地话就加入黑名单
近期有这个需求,判断到底是键盘输入还是扫描枪输入(可不考虑Ctrl+V),在下载里面找到了一段示例代码,如此描述:
“附件代码演示了如何屏蔽键盘输入,只能通过读卡器或者条码枪读入系统。
目前大家使用的办法是通过输入间隔时间来控制,看看国外高手是如何处理的。”
下载地址是这里:http://download.****.net/detail/cloudlu/2663007
颇感兴趣,下载后发现不知道这是什么工程文件,.Net的么?没用过VS,所以不知道里面这堆文件的关系,没能搞明白。能不能有明白人给讲讲用的是什么原理?或者给出C++builder下的代码更好:D
------解决思路----------------------
先说原理,扫描枪地是把字符发送到键盘缓冲区地,所以这样扫描枪和键盘按键没有区别
数据一旦发到缓冲区就很难办地,神仙也不知道是键盘发地还是扫描枪发地了
------解决思路----------------------
一般地最简单地技术可能会用按键间隔时间来判断是不是键盘按键,因为扫描枪是很快速地,在很短地时间内将一长串数据输入缓冲区,并且每个字符的间隔时间超短
而人手输入是不可能这个均匀和快速地,尤其是在5位以上数据时,怎么地速度也不能完全一致
这样第一个方法就是判断输入地总时间,和每个字符地输入间隔,这个是很容易判断地,也有一点点准确性,但不是完全准确滴
第二个就是监控串口了,需要判断出键盘和扫描枪,注意一点,USB扫描枪和USB键盘也会以串口的方式出现
当接受输入地控件接到数据后,将前面监控到地串口数据和EDIT中的数据比对,
有两种方式,一是你判断出了键盘,那么就是!=,判断出了扫描枪就是==
这样就能准确地知道是扫描枪还是键盘了
不传之密啊,具体代码就不提供了