Motorola Scanner SDK BarcodeEvent触发器

时间:2013-01-24 15:11:19

标签: vb.net barcode-scanner motorola

非常感谢任何帮助 -

我无法在VB .NET中触发BarcodeEvent。扫描仪处于USB(IBM手持)模式,一切正常,与SDK附带的C#示例应用程序。此外,我能够在VB .net中使扫描仪发出蜂鸣声,因此驱动程序正常工作。 我可能搞砸了将这个C#代码转换为VB

cCoreScannerClass.BarcodeEvent += new
_ICoreScannerEvents_BarcodeEventEventHandler(OnBarcodeEvent);

void OnBarcodeEvent(short eventType, ref string pscanData)
{
    string barcode = pscanData;
    this.Invoke((MethodInvoker)delegate { textBox1.Text = barcode; });
}

- 这是我的代码:-------

Imports CoreScanner
Imports System.Collections.Generic
Imports System.Text

Public Class Form1

    Public WithEvents cCoreScannerClass As CCoreScannerClass

    Sub Main()

        cCoreScannerClass = New CCoreScannerClass
        Dim scannertype(1) As Short
        scannertype(0) = 1
        Dim numberOfScannerTypes As Short
        numberOfScannerTypes = 1
        Dim status As Integer

        cCoreScannerClass.Open(0, scannertype, numberOfScannerTypes, status)

        AddHandler cCoreScannerClass.BarcodeEvent, AddressOf OnBarcodeEvent

        Dim opcode As Integer = 1001
        Dim outXML As String 
        Dim inXML = "<inArgs>" +
                       "<cmdArgs>" +
                           "<arg-int>1</arg-int>" +
                           "<arg-int>1</arg-int>" +
                       "</cmdArgs>" +
                    "</inArgs>"

        cCoreScannerClass.ExecCommand(opcode, inXML, outXML, status)

    End Sub

    Public Sub OnBarcodeEvent(eventType As Short, ByRef pscanData As String) Handles cCoreScannerClass.BarcodeEvent
        MsgBox("Success!")
    End Sub

2 个答案:

答案 0 :(得分:1)

在玩完所有事件之后,同样精确的VB .net代码突然开始工作。我想当我做重启事件时,扫描仪就会出现。 对于Motorola corescanner类,没有一个VB .net的例子,sooo欢迎您:)

答案 1 :(得分:1)

我遇到了同样的问题,最终确定它与Interop.CoreScanner.dll文件的权限有关。

在干净的安装中,演示应用程序的简单“构建”将起作用。清理和重建会导致事件失败,但其他调用(如发现扫描仪或发出蜂鸣声)会起作用。我的自定义应用程序与清理和重建的演示应用程序的行为方式相同。

事实证明,SDK发布了具有预安装二进制文件的演示应用程序,这些二进制文件具有与安装程序不同的权限:

  • Motorola Scanner\Scanner SDK\Scanner SDK\Sample Applications\bin
  • 预构建的二进制文件
           Group:       System    Administrators    Users
Permission:                
 - Full Control            X            X             
 - Modify                  X            X             
 - Read and Execute        X            X             X
 - Read                    X            X             X
 - Write                   X            X            
 - Special Permissions
  • Motorola Scanner\Common
  • 的图书馆副本
           Group:       System    Administrators    BUILTIN (BUILTIN)?
Permission:                
 - Full Control            X            X             X
 - Modify                  X            X             X
 - Read and Execute        X            X             X
 - Read                    X            X             X
 - Write                   X            X             X
 - Special Permissions

我不知道'BUILTIN'用户是谁,或者Users组没有权限的原因,或者为什么你可以使用后一种设置执行DLL中的一些但不是所有代码。

然而,用前者取代后者解决了我的问题。