3

对此的任何帮助都非常感谢 -

我在 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
4

2 回答 2

1

After playing around with all the events, this same exact VB .net Code started working all of the sudden. I guess the scanner came to its senses when I did a reboot event. There is not a single example of VB .net for Motorola corescanner class, sooo You are welcome :)

于 2013-01-28T16:56:37.383 回答
1

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

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

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

  • 预构建的二进制文件Motorola Scanner\Scanner SDK\Scanner SDK\Sample Applications\bin
           组:系统管理员用户
允许:                
 - 完全控制 XX             
 - 修改 XX             
 - 读取并执行 XXX
 - 阅读XXX
 - 写XX            
 - 特殊权限
  • 图书馆副本在Motorola Scanner\Common
           组:系统管理员 BUILTIN (BUILTIN)?
允许:                
 - 完全控制 XXX
 - 修改 XXX
 - 读取并执行 XXX
 - 阅读XXX
 - 写XXX
 - 特殊权限

我不知道“BUILTIN”用户是谁,或者为什么用户组没有权限,或者为什么您可以使用后一种设置执行 DLL 中的一些但不是全部代码。

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

于 2013-03-26T19:01:50.393 回答