Vb.net 摩托罗拉扫描仪SDK条码事件触发器

Vb.net 摩托罗拉扫描仪SDK条码事件触发器,vb.net,barcode-scanner,motorola,Vb.net,Barcode Scanner,Motorola,非常感谢您的帮助- 在VB.NET中启动BarcodeEvent时遇到问题。扫描仪处于USB(IBM手持式)模式,一切都与SDK附带的C#示例应用程序配合良好。另外,我能够在VB.net中使扫描仪发出嘟嘟声,因此驱动程序工作正常。 我可能把这个C代码转换成VB时搞砸了 cCoreScannerClass.BarcodeEvent += new _ICoreScannerEvents_BarcodeEventEventHandler(OnBarcodeEvent); void OnBarcode

非常感谢您的帮助-

在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; });
}
--这是我的密码:-------

导入CoreScanner
导入System.Collections.Generic
导入系统文本
公开课表格1
将事件cCoreScannerClass作为cCoreScannerClass公开
副标题()
cCoreScannerClass=新的cCoreScannerClass
Dim扫描仪类型(1)为短型
扫描类型(0)=1
Dim numberOfScannerTypes尽可能短
numberOfScannerTypes=1
Dim状态为整数
cCoreScannerClass.Open(0,scannertype,NumberOfScannerType,状态)
AddHandler cCoreScannerClass.BarcodeEvent,OnBarcodeEvent的地址
Dim操作码为整数=1001
将XML设置为字符串
Dim inXML=“”+
"" +
"1" +
"1" +
"" +
""
ExecCommand(操作码、inXML、outXML、状态)
端接头
Public子OnBarcodeEvent(eventType为Short,ByRef pscanData为String)处理cCoreScannerClass.BarcodeEvent
MsgBox(“成功!”)
端接头

在处理了所有事件之后,同样的VB.net代码突然开始工作。我想当我重新启动时,扫描器开始感觉到了。
Motorola corescanner类中没有一个VB.net示例,所以欢迎您:)

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

在干净的安装上,演示应用程序的简单“构建”就可以了。清理和重建将导致事件失败,但其他调用(如发现扫描仪或鸣响呼机)也可以工作。我的自定义应用程序的行为方式与清理和重建的演示应用程序相同

事实证明,SDK提供的演示应用程序带有预构建的二进制文件,这些二进制文件具有与安装程序不同的权限:

  • 摩托罗拉扫描器\Scanner SDK\Scanner SDK\Sample Applications\bin上的预构建二进制文件
我不知道“内置”用户是谁,也不知道为什么用户组没有权限,也不知道为什么您可以使用后一种设置执行DLL中的部分但不是全部代码

但是,用前者替换后者解决了我的问题。

XML中缺少结束标记;-)
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
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 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