1、开启沟子的方法代码
2、指定输入间隔为300毫秒以内时为连续输入方法代码
3、其他事件的方法代码:
4、记录按键信息方法代码:
5、事件的状态代码方法
6、因为条形码中只有数字和部分符号,所以基本可以不用考虑键盘状态或组合键的情况,但二维码就不能不考虑了,尤其是有些验证信息还区分大小写的情况,例如二维码扫描结果是这样的内容“c=a0$nL肛舀辨乔D7_49vSF9-1&n=1”,我使用的是科密ew-9200扫描枪,因为要区分扫描枪,所以对每个扫描枪追加的后缀设置,也就是&n=1部分,前面的才是扫描结果那么通过事件监听,发现在键盘状态为小写时,a还是a,但是$是4,L是l,也就是说,我们无法通过键盘状态来获取我们的预期结果,但是我们发现了另一个现象,那就是相邻的几个EventMsg中paramH为0时,是表示按下了对应按钮,paramH大于零时表示松开了对应按钮,那么就有一个有意思的现象了,当出现字母a时,EventMsg中message相同的两次,一次paramH=0,一次paramH=128,而出现字母L时,相关的EventMsg为四个,分别是message=160¶mH=0,message=76¶mH=0,message=76¶mH=128,message=160¶mH=129,于是就有了一个辅助记录是否组合键的变量及代码段。
7、可以使用_keydown.Contains(160)判断是否按下了Shift键,然后使用ShiftChar方法来获取最终的按键对应字符至于结果保存,我使用了一个数组List<List<EventMsg>>,对每次输入都单独进行记录。
8、触发事件有定义,且当前按键时回车键松开,且已记录的字符串非空,则触发返回事件。