3

これに関するヘルプは大歓迎です-

VB .NET で BarcodeEvent を起動できません。スキャナは USB (IBM Hand Held) モードで、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

すべてのイベントをいじった後、まったく同じ VB .net コードが突然機能し始めました。再起動イベントを行ったときに、スキャナーが正常に機能したと思います。Motorola corescanner クラスの VB .net の例は 1 つもありません。どういたしまして :)

于 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 に答える