2013-01-24 2 views
3

아무 도움도받지 못했습니다.Motorola Scanner SDK BarcodeEvent Trigger

VB .NET에서 BarcodeEvent를 실행하는 데 문제가 있습니다. 스캐너는 USB (IBM Hand Held) 모드이며 SDK와 함께 제공된 C# 샘플 응용 프로그램으로 모든 것이 잘 작동합니다. 또한 스캐너 비프 음을 VB .net으로 만들 수 있으므로 드라이버가 정상적으로 작동합니다. 아마

cCoreScannerClass.BarcodeEvent += new 
_ICoreScannerEvents_BarcodeEventEventHandler(OnBarcodeEvent); 

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

VB이 C# 코드를 변환 엉망 - 여기 내 코드입니다 : 모든 이벤트와 장난 한 후 정확한이 같은 -------

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 
+0

XML에서 닫기 태그가 누락되었습니다. ;-) – PGallagher

답변

1

VB .net 코드가 갑자기 작동하기 시작했습니다. 나는 재부팅 이벤트를 할 때 스캐너가 오감을 느꼈을 것 같다. 모토로라 corescanner 클래스의 VB .net 예제가 하나도 없습니다. 환영합니다.

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에서 일부 코드를 실행할 수있는 이유를 알 수 없습니다.

    그러나 후자를 이전으로 대체하면 내 문제가 해결됩니다.