即时通讯开发一个Windows应用程序,我需要从扫描仪读取数据...我知道关于专注于文本框的Kyeboards楔形扫描仪...但单用户if我想与多个扫描仪一起工作,然后我如何阅读?从多个条形码扫描仪读取数据到C#应用程序
回答
取决于扫描仪及其API。如果它只是模拟键盘,你将会很难。尝试检查API以查看它是否支持打开流,可能是串口等。这样,您可以分别打开每个扫描仪,并根据需要从每个扫描仪读取。
让我们希望您拥有的扫描仪可以作为单独的输入流打开。
如果扫描仪充当HID设备,那么他们只是在键盘上输入符号时才发送符号,那么您将无法了解扫描仪是否具有此符号。此外,您甚至无法了解用户是否在键盘或扫描仪上键入了任何内容,并向您发送了一些符号,只是出现。
几乎每个条形码扫描仪都有自己的协议,通常它很简单,它允许通过串口进行通信。你只需要实现该协议。有时候几个扫描仪(来自不同的供应商)使用相同的协议,在这种情况下,支持它们会更容易。
一些条码扫描器支持与主机进行通信,即,它们可以通过串口通信(即在你的情况下优选的方式),或者它们可以作为HID装置起作用(什么是不适合你的情况下)的不同模式,还有其他一些选择。模式可以通过程序进行更改,也可以使用条形码手册附带的特殊条形码进行更改。请参阅您的条形码手册以阐明它。
您可以使用Microsoft POS for .NET提供具有简单和一致接口的.NET应用程序,以便与超过三十个服务点(POS)外围设备进行通信。设备列表包括条形码扫描仪,磁条阅读器(MSR),线路显示器,PIN码垫,RFID阅读器,生物识别阅读器,收据打印机,收银机等等。 POS for .NET是微软对业界统一服务点(UPOS)标准的实施。 POS for .NET使独立软件供应商和独立硬件供应商能够轻松支持使用Microsoft .NET的各种外设。此外,Microsoft POS for .NET为ISV和最终客户提供了许多优于统一POS的优势
用于.NET的Microsoft服务点可作为free download from Microsoft提供。
Microsoft.PointOfService
程序集定义了POS应用程序和用于连接和控制POS for .NET支持的许多设备的服务对象之间的编程接口契约。一提到这个组件添加到项目中:
右键单击Solution Explorer中的“参考”,然后单击“添加引用...”
在弹出的对话框中选择“浏览”选项卡
导航到包含文件夹“%ProgramFiles%\ Microsoft Point Of Service \ SDK”的文件夹,选择参考文件“Microsoft.PointOfService.dll” 单击“确定”以添加参考。
再加入using
语句类这样
using Microsoft.PointOfService;
using System.Collections;
那么你可以写你的方法是这样的:
private void ActivateScanner(DeviceInfo selectedScanner)
{
//Verify that the selectedScanner is not null
// and that it is not the same scanner already selected
if (selectedScanner != null && !selectedScanner.IsDeviceInfoOf(activeScanner))
{
// Configure the new scanner
DeactivateScanner();
// Activate the new scanner
UpdateEventHistory(string.Format(Activate Scanner: {0}",
selectedScanner.ServiceObjectName));
try
{
activeScanner = (Scanner)explorer.CreateInstance(selectedScanner);
activeScanner.Open();
activeScanner.Claim(1000);
activeScanner.DeviceEnabled = true;
activeScanner.DataEvent += newDataEventHandler(activeScanner_DataEvent);
activeScanner.ErrorEvent += new DeviceErrorEventHandler(
activeScanner_ErrorEvent);
activeScanner.DecodeData = true;
activeScanner.DataEventEnabled = true;
}
catch (PosControlException)
{
// Log error and set the active scanner to none
UpdateEventHistory(string.Format(Activation Failed: {0}",
selectedScanner.ServiceObjectName));
activeScanner = null;
}
}
注:你可以找到POS一个良好的书面教程.NEThere
希望这有助于:)
- 1. 从USB条形码扫描仪读取
- 2. 从C扫描仪或条形码阅读器读取数字#
- 3. 只有当数据可用时才从USB条形码扫描仪读取
- 4. 从.net(C#)windows应用程序中的条码扫描器中读取数据!
- 5. 在条形码扫描仪扫描时用java打印条码
- 6. 使用扫描仪的Swing应用程序条形码阅读器
- 7. 代码39条形码“1”很难被扫描仪读取
- 8. 如何从android条码扫描器程序读取数据?
- 9. 用于MonoTouch的条形码扫描仪?
- 10. C条码扫描器应用程序#
- 11. 条形码扫描仪重定向到扫描网址
- 12. 从我的iOS应用程序中使用条形码扫描仪(如Grabba)
- 13. 无法读取条形码扫描仪的输出
- 14. 从TC50蓝牙配对的RS507环形扫描仪读取条形码
- 15. 从扫描仪只读数
- 16. 条形码扫描仪输入数据谷歌形式
- 17. 在windows应用程序中使用条形码扫描器C#
- 18. Android条码扫描仪不读取一些条码
- 19. ZXing用于Web应用程序的条码扫描仪
- 20. 如何从蓝牙条形码扫描仪读取数据到Android设备使用蓝牙?
- 21. 在Android应用程序中单击按钮时调用条形码扫描仪
- 22. 在Android上使用“Zxing的条形码扫描仪”应用程序
- 23. 使用USB条形码扫描器读取条形码以及忽略键盘数据输入,而扫描仪产品ID和供应商ID未知
- 24. ZXing BarCode扫描仪只扫描应用条码
- 25. 如何在我的应用程序中嵌入条形码扫描仪?
- 26. 读取文件,扫描仪
- 27. 如何编写Visual Basic代码以读取条形码扫描仪的输入?
- 28. 从扫描仪读取文件
- 29. Java扫描仪()从阵列读取
- 30. 用vb.net扫描条形码
我回答了[类似的问题(http://stackoverflow.com/questions/5259569/pos-for-净分化之间条码扫描仪和键盘输入)。 – CheeZe5 2011-03-16 11:48:26