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

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


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

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


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

Google搜索揭示了一个库,用于注册来自Java的系统级热键。 这个网站上还有一个关于它的问题,这似乎表明,在Mac OS X中没有公开可用的库,尽管其中一个答复者发布了一个链接到他正在开发的这样一个库。


在对此进行了一些研究之后,我用一个虚拟串口提到了jarnbjo,这里有一个例子(请参阅我的答案)。

链接地址: http://www.djcxy.com/p/49003.html

上一篇: Read barcode when program doesn't have focus?

下一篇: MySQL : how to load data with fixed