Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从多个条形码扫描仪读取数据到C#应用程序_C#_Hardware_Barcode Scanner - Fatal编程技术网

从多个条形码扫描仪读取数据到C#应用程序

从多个条形码扫描仪读取数据到C#应用程序,c#,hardware,barcode-scanner,C#,Hardware,Barcode Scanner,我正在开发一个windows应用程序,需要从扫描仪中读取数据…我知道kyeboards楔形扫描仪将重点放在文本框上…但这适用于单个用户如果我想使用多个扫描仪,那么如何读取???取决于扫描仪及其API。如果它只是模拟一个键盘,你将有一个困难的时候。试着检查API,看看它是否支持打开流,比如串口之类的。这样,您可以单独打开每个扫描仪,并根据需要读取每个扫描仪的内容 希望您拥有的扫描仪可以作为单独的输入流打开。取决于扫描仪及其API。如果它只是模拟一个键盘,你将有一个困难的时候。试着检查API,看看它

我正在开发一个windows应用程序,需要从扫描仪中读取数据…我知道kyeboards楔形扫描仪将重点放在文本框上…但这适用于单个用户如果我想使用多个扫描仪,那么如何读取???

取决于扫描仪及其API。如果它只是模拟一个键盘,你将有一个困难的时候。试着检查API,看看它是否支持打开流,比如串口之类的。这样,您可以单独打开每个扫描仪,并根据需要读取每个扫描仪的内容


希望您拥有的扫描仪可以作为单独的输入流打开。

取决于扫描仪及其API。如果它只是模拟一个键盘,你将有一个困难的时候。试着检查API,看看它是否支持打开流,比如串口之类的。这样,您可以单独打开每个扫描仪,并根据需要读取每个扫描仪的内容


让我们希望您拥有的扫描仪可以作为单独的输入流打开。

如果扫描仪充当HID设备,这意味着他们只是在键盘上键入符号时发送符号,那么您将无法理解,这个符号来自于什么扫描仪。此外,你们甚至无法理解用户是否在键盘或扫描仪上键入了任何东西,并向你们发送了一些符号,它只是出现而已

几乎每个条形码扫描仪都有自己的协议,通常非常简单,可以通过串口进行通信。你只需要实现这个协议。有时几个扫描仪(来自不同的供应商)使用相同的协议,在这种情况下,支持它们会更容易


一些条形码扫描仪支持与主机进行不同的通信模式,即它们可以通过串行端口进行通信(这是您的首选方式),或者它们可以充当HID设备(不适合您的情况),还有一些其他选项。模式可以通过编程或使用条形码手册附带的特殊条形码进行更改。请参阅您的条形码手册以澄清此问题。

如果扫描仪充当HID设备,这意味着他们只是在键盘上键入符号时发送符号,那么您将无法理解此符号来自于什么扫描仪。此外,你们甚至无法理解用户是否在键盘或扫描仪上键入了任何东西,并向你们发送了一些符号,它只是出现而已

几乎每个条形码扫描仪都有自己的协议,通常非常简单,可以通过串口进行通信。你只需要实现这个协议。有时几个扫描仪(来自不同的供应商)使用相同的协议,在这种情况下,支持它们会更容易


一些条形码扫描仪支持与主机进行不同的通信模式,即它们可以通过串行端口进行通信(这是您的首选方式),或者它们可以充当HID设备(不适合您的情况),还有一些其他选项。模式可以通过编程或使用条形码手册附带的特殊条形码进行更改。请参阅您的条形码手册进行说明。

您可以使用Microsoft POS for.NET为.NET应用程序提供了简单一致的接口,用于与30多个服务点(POS)外围设备进行通信。设备列表包括条形码扫描仪、磁条读卡器(MSR)、线路显示器、PIN码板、RFID读卡器、生物识别读卡器、收据打印机、现金抽屉等。POS for.NET是微软实施的行业统一服务点(UPOS)标准。POS for.NET使独立软件供应商和独立硬件供应商都可以轻松地使用Microsoft.NET支持广泛的外围设备。此外,Microsoft POS for.NET为ISV和最终客户提供了统一POS之外的许多优势

Microsoft.NET服务点可作为提供

Microsoft.PointOfService
程序集定义POS应用程序和服务对象之间的编程接口契约,用于连接和控制POS for.NET支持的许多设备。将对此程序集的引用添加到项目中:

  • 右键单击解决方案资源管理器中的“引用”,然后单击“添加引用…”

  • 在弹出的对话框中,选择“浏览”选项卡

  • 通过导航到包含该文件的文件夹“%ProgramFiles%\Microsoft服务点\SDK”,选择引用“Microsoft.PointOfService.dll”文件 单击“确定”添加引用

  • 然后像这样使用语句向类中添加

    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;
            }
        }
    
    N.B.您可以在POS for.NET上找到一篇写得很好的教程


    希望这有帮助:)

    您可以使用Microsoft POS for.NET为.NET应用程序提供了简单一致的接口,用于与30多个服务点(POS)外围设备进行通信。设备列表包括条形码扫描仪、磁条阅读器(MSR)、线显示器、PIN码板、RFID读卡器、生物识别读卡器、收据打印机、现金抽屉等。POS for.NET是Microsoft实现的行业统一服务点(UPOS)标准.POS for.NET使独立软件供应商和独立硬件供应商都可以轻松地使用Microsoft.NET支持广泛的外围设备。此外,Microsoft POS for.NET为ISV和最终客户提供了统一POS之外的许多优势

    Microsoft.NET服务点可作为提供

    Microsoft.PointOfService
    程序集定义POS应用程序和服务对象之间的编程接口约定,用于连接和控制POS for.NET支持的许多设备。将此程序集的引用添加到项目中:

  • 右键单击解决方案资源管理器中的“引用”,然后单击“添加引用”