2017-05-11 16 views
0

현재 문제가 있습니다. Twain UI를 사용하여 취소를 클릭하면 catch 예외로 넘어 가지 않고 장치를 닫지 않습니다. 내가 한 번 더 UI를 열고 스캔을 클릭하면 그것은 나를는 현재 제외하고 폐쇄 상태를 유지 장치 열하지 않습니다 : (11)Twain UI에서 장치를 닫는 방법

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

: 장치가 열려 있습니다 오류 코드가 아닙니다

원하는 횟수만큼 스캔을 할 수 있지만 장치 상태가 값을 변경하지 않는 UI에서 취소를 사용하고 싶습니다.

답변

0

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