【问题标题】:How to close device in Twain UI如何在 Twain UI 中关闭设备
【发布时间】:2017-05-11 18:25:30
【问题描述】:

我遇到了当前的问题。如果我单击取消使用 Twain UI,它不会进入 catch 异常并且不会关闭设备。如果我再次打开 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 上使用取消,设备状态不会更改值。

【问题讨论】:

    标签: vb.net twain


    【解决方案1】:

    我通过为 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
    

    【讨论】:

      猜你喜欢
      • 2010-11-21
      • 1970-01-01
      • 2012-12-14
      • 1970-01-01
      • 2013-08-31
      • 1970-01-01
      • 2010-11-05
      • 2013-10-15
      相关资源
      最近更新 更多