vb界面,text只接受条纹码扫描器的信息,自动屏蔽键盘信息,用API拦截,具体怎么写啊?
3个回答
展开全部
条码扫描器和键盘共用一个键盘接口,对于同样一个字符(如A),输入的代码应该是相同的,所以根本不可能通过输入的字符代码来判定输入设备的类型
要实现此功能,只能另想办法。.
键盘输入一串字符要多少时间?条纹码扫描器呢?
噎死,用时间函数。OK
首先,不要用TEXT控件来接收输入信息,而改用一个字符串变量来接收,当判定完成后再决定是否将变量赋予给文本框。
我们用两个时间变量来计算输入时间。
当接受到第一个信号时,记录下起始时间,当接收到“回车”(CHR(13))信号时,记录下结束时间
然后,计算出输入时间长度,最后和一个预设长度(你可以通过实验来测试这个数值)来比较,如果超时则为键盘,字符串变量清空,否则,字符串变量赋予给文本框。
当然,还有些问题要注意,比如,当输入的第一个字符是回车键时应该如何处理?当接收到某些功能键时应该如何处理?(条码扫描器输入的都是字符)字符串变量每次改变后输入信息应该如何处理?如果是某种特定类型的条码呢?条码的最短长度?等等。所有细节都要考虑。
在Text1_KeyPress事件里处理
知道怎样写了吗?
要实现此功能,只能另想办法。.
键盘输入一串字符要多少时间?条纹码扫描器呢?
噎死,用时间函数。OK
首先,不要用TEXT控件来接收输入信息,而改用一个字符串变量来接收,当判定完成后再决定是否将变量赋予给文本框。
我们用两个时间变量来计算输入时间。
当接受到第一个信号时,记录下起始时间,当接收到“回车”(CHR(13))信号时,记录下结束时间
然后,计算出输入时间长度,最后和一个预设长度(你可以通过实验来测试这个数值)来比较,如果超时则为键盘,字符串变量清空,否则,字符串变量赋予给文本框。
当然,还有些问题要注意,比如,当输入的第一个字符是回车键时应该如何处理?当接收到某些功能键时应该如何处理?(条码扫描器输入的都是字符)字符串变量每次改变后输入信息应该如何处理?如果是某种特定类型的条码呢?条码的最短长度?等等。所有细节都要考虑。
在Text1_KeyPress事件里处理
知道怎样写了吗?
更多追问追答
追问
假如用串口的扫描器是不是就不存在这样的问题啦
追答
你用过串口键盘吗?串口鼠标呢?早年确实有的
除非你事先知道它们各自的接口。然后在Text1_KeyPress事件中判断该信号来自哪里,这已经涉及到底层的操作了。VB并不赞成使用(当然VB有这来API函数)。而且这样更复杂
另外有个问题。当光标在文本框中时,你不想扫描而想做别的操作,那你该怎么办?
展开全部
这个还用 API 干嘛,直接屏蔽按键不就好了?
Private Sub Text1_KeyPress(KeyAscii As Integer)
KeyAscii = 0 '屏蔽所有按键
End Sub
追问
你这样一来,条码扫描器的信息都也屏蔽掉了,我要屏蔽键盘信息,只接受条码扫描器信息
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用label控件吧,即满足要求,越简单越好。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询