PosExplorer - 条形码扫描程序 - 在scanner.Open()后收到错误'根元素丢失'

时间:2017-08-10 06:39:57

标签: c# .net wpf

我在WPF中编写应用程序,在特定页面上初始化posExplorer,获取所需的扫描程序,然后打开并侦听DataEvent处理程序。它已经奏效,没有任何问题。 然后它突然(是的,突然)开始抛出异常:

HHSO4NET.dll中出现'System.Exception'类型的异常,但未在用户代码中处理... 像'根元素缺失'的东西[来自捷克语翻译,我无法改变] 是的,条形码扫描仪已连接到计算机。我已经尝试重新安装net for net 1.12,但仍然是同样的错误。

这背后有代码:

Private PosExplorer posExplorer = new PosExplorer ();
Private Scanner scan;

PosExplorer.DeviceAddedEvent + = new 
DeviceChangedEventHandler(posExplorer_DeviceAddedEvent);
Var deviceCollection = posExplorer.GetDevices (DeviceType.Scanner);

Foreach (DeviceInfo dInfo in deviceCollection)
{
    If (dInfo.Type == "Scanner" && dInfo.ServiceObjectName == "HoneywellScannerSO")
    {
        If (dInfo.LogicalNames.Length> 0)
        {
             Devicess.Add (dInfo);
        }
    }
}

Scan = (Scanner) posExplorer.CreateInstance (devicess [0]);

If (! (Scan.State == ControlState.Idle))
{
    Scan.Open ();    //AFTER THAT IT FAILS
    Scan.Claim (0);
    Scan.DeviceEnabled = true;
    Scan.DataEvent + = new DataEventHandler (activeScanner_DataEvent);
    Scan.DataEvent = true;
    Scan.DecodeData = true;
}

有人可以告诉我,它是如何工作的,以后在没有任何修改的情况下它不起作用?谢谢你的回答。

1 个答案:

答案 0 :(得分:0)

好吧,过了几天我终于解决了。它需要从霍尼韦尔重新安装软件 - POS4NET配置实用程序。然后删除并再次在指定端口上添加扫描程序并运行它。多么简单吧?但仍然不知道为什么会这样。