2017-05-11 1 views
0

Ich habe das aktuelle Problem. Wenn ich die Twain-Benutzeroberfläche benutze, wenn ich auf "Abbrechen" klicke, wird die Catch-Ausnahme nicht ausgeführt und das Gerät wird nicht geschlossen. Wenn ich noch einmal die Benutzeroberfläche öffnen und klicken Sie auf Scan macht es mir das Gerät nicht öffnen lassen es mit der aktuellen Ausnahme geschlossen bleibt: Das Gerät ist nicht offen Fehlercode: 11.Wie Gerät in Twain UI zu schließen

Public Sub AcquireImage() 
    OpenDeviceManager() 
    Dim device As Vintasoft.Twain.Device = devManager.Devices.Find("KODAK Scanner: i1150/i1180") 

    Try 
     snCount = 0 
     imgCount = 0 

     device.ShowUI = True 
     device.Open() ''PROBLEM IS HERE 


     device.PixelType = PixelType.Gray 
     device.Acquire() 

     AddHandler device.ImageAcquired, AddressOf device_ImageAcquired 
     AddHandler device.ScanCompleted, AddressOf device_ScanCompleted 
     AddHandler device.ScanCanceled, AddressOf device_ScanCanceled 
     AddHandler device.ScanFailed, AddressOf device_ScanFailed 

     device.DisableAfterAcquire = True 


    Catch ex As TwainException 
     MessageBox.Show(ex.Message) '' Device is not opened Error code: 11 
     CloseDevice(device) 

     device.Disable() 



     Return 
    End Try 



End Sub 

enter image description here enter image description here

Ich kann so oft scannen, wie ich möchte, aber ich möchte den Cancel auf der UI verwenden, der Gerätestatus ändert die Werte nicht.

Antwort

0

Ich löste das Problem durch Hinzufügen der Hinzufügen und Entfernen-Handler für device.UserInterfaceClosed.

Private Sub AcquireImage() 
    SetFormUiState(False) 
    OpenDeviceManager() 
    Dim device As Vintasoft.Twain.Device = devManager.Devices.Find("KODAK Scanner: i1150/i1180") 

    Try 

     AddHandler device.ImageAcquired, AddressOf device_ImageAcquired 
     AddHandler device.ScanCompleted, AddressOf device_ScanCompleted 
     AddHandler device.ScanCanceled, AddressOf device_ScanCanceled 
     AddHandler device.ScanFailed, AddressOf device_ScanFailed 
     **AddHandler device.UserInterfaceClosed, AddressOf device_UserInterfaceClosed** 

     snCount = 0 
     imgCount = 0 

     device.Open() 
     device.ShowUI = True 
     device.PixelType = PixelType.Gray 
     device.Acquire() 
     device.DisableAfterAcquire = True 

    Catch ex As TwainException 
     MessageBox.Show(ex.Message) 
     SetFormUiState(True) 
     CloseDevice(device) 
     Return 
    End Try 
End Sub