程序没有焦点时读取条形码?

时间:2010-11-22 19:18:41

标签: java .net barcode

我想编写一个简单的程序来读取条形码,并记下条形码以及扫描时间。不幸的是,我不能保证程序在扫描代码时会有焦点。我的理解是大多数条形码扫描仪就像键盘一样,所以如果程序没有焦点,我就会遇到问题。有什么方法可以解决这个问题?注意我更喜欢用Java编写代码,但如果库更容易,我可以使用.net。我也没有特定的扫描仪,所以如果一个型号更好地工作,那么信息将被赞赏。我已经this question了,但它假定应用程序具有焦点。

3 个答案:

答案 0 :(得分:2)

大多数条形码扫描仪的行为类似于键盘,因此需要处理应用程序具有输入焦点。然而,还有条形码扫描仪,它们连接到串行端口或连接到USB并提供虚拟串行端口接口。

必须通过真实或虚拟串行端口访问这些扫描仪。对于Java,您将需要使用Java Communications API或任何其他第三方库来提供对串行端口的访问,因为标准Java API无法实现这一点。

答案 1 :(得分:2)

大多数键盘楔形条形码扫描仪可以配置(通过配置条形码)在发送条形码数据之前模拟功能键的按键。 Windows API包含RegisterHotkey function来定义系统范围的热键。按下热键后,您可以将焦点放在程序窗口上以读取条形码。

Google搜索会显示library来注册来自Java的系统级热键。关于它还有一个question on this site,这似乎暗示在Mac OS X中没有公开的库可以这样做,尽管其中一个回复者发布了他正在开发的这样一个库的链接。

答案 2 :(得分:0)

经过对此的一些研究后,我实现了jarnbjo与虚拟串口的关系,例如here(参见我的回答)。