Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 如何在Twain UI中关闭设备_Vb.net_Twain - Fatal编程技术网

Vb.net 如何在Twain UI中关闭设备

Vb.net 如何在Twain UI中关闭设备,vb.net,twain,Vb.net,Twain,我有目前的问题。使用Twain UI,如果单击“取消”,则不会出现捕获异常,也不会关闭设备。如果我再次打开UI并单击“扫描”,它将不允许我打开设备,它将保持关闭状态,当前例外情况为:设备未打开错误代码:11 Public Sub AcquireImage() OpenDeviceManager() Dim device As Vintasoft.Twain.Device = devManager.Devices.Find("KODAK Scanner: i1150/i11

我有目前的问题。使用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上使用“取消”,设备状态不会更改值。

我通过添加设备的添加和删除处理程序解决了问题。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