如何在 Twain 中关闭设备 UI
How to close device in Twain UI
我遇到了当前的问题。使用 Twain UI 如果我单击取消,它不会捕获异常并且不会关闭设备。如果我再次打开 UI 并单击扫描,它不会让我打开它保持关闭状态的设备,当前异常:设备未打开错误代码:11.
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
我可以扫描任意多次,但我想在 UI 上使用取消,设备状态不会更改值。
我通过 为 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
我遇到了当前的问题。使用 Twain UI 如果我单击取消,它不会捕获异常并且不会关闭设备。如果我再次打开 UI 并单击扫描,它不会让我打开它保持关闭状态的设备,当前异常:设备未打开错误代码:11.
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
我可以扫描任意多次,但我想在 UI 上使用取消,设备状态不会更改值。
我通过 为 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