Wia 代码不适用于柯达 scanmate i1120 扫描仪
Wia code won`t work with kodak scanmate i1120 scanner
我重写了一个扫描文档并从文档中读取条形码的程序,该程序是用 vb6 编写的并在 windows xp 上工作。
这个新程序在 windows 10 上使用旧的 fujitsu fi-4129c2 扫描仪工作正常,但我无法使用新的 scanmate i1120 扫描仪工作。
我得到的错误在以下行:
MyImage = DirectCast(ConnectedScanner.Items(1).Transfer(WIA.FormatID.wiaFormatBMP), WIA.ImageFile)
我得到的错误是:
我知道代码的工作原理与我使用 fujitsu 扫描仪时的代码相同,但我似乎无法弄清楚是什么值让我在 scanmate 上出现错误。
我刚刚尝试了以下三行代码,它仍然给我同样的错误:
Dim CD As New CommonDialog
Dim F As ImageFile = CD.ShowAcquireImage(WiaDeviceType.ScannerDeviceType)
F.SaveFile("C:\Temp\WIA." + F.FileExtension)
原来是扫描仪的 WIA_DPS_PAGES 设置。
我尝试使用以下代码更改它:
With ConnectedScanner.Items(1)
.Properties("3096").Value = 1
.Properties("6146").Value = 2
.Properties("6147").Value = 300 'dots per inch/horizontal
.Properties("6148").Value = 300 'dots per inch/vertical
.Properties("6154").Value = -50 'brightness
.Properties("6155").Value = -50 ' contrast
End With
但是这并没有用,所以看了之后 WIA Scanning via Feeder
我将此页面上的代码转换为 vb 并使用了以下子代码:
Public Sub SetDeviceProperty(device As Device, propertyId As Integer, value As Object)
Dim [property] As [Property] = FindProperty(device.Properties, propertyId)
If [property] IsNot Nothing Then
[property].let_Value(value)
End If
End Sub
并使用 :
更改了设置
SetDeviceProperty(ConnectedScanner, 3096, 1)
SetDeviceProperty(ConnectedScanner, 6146, 2)
SetDeviceProperty(ConnectedScanner, 6147, 300)
SetDeviceProperty(ConnectedScanner, 6148, 300)
SetDeviceProperty(ConnectedScanner, 6154, -50)
SetDeviceProperty(ConnectedScanner, 6155, -50)
我重写了一个扫描文档并从文档中读取条形码的程序,该程序是用 vb6 编写的并在 windows xp 上工作。
这个新程序在 windows 10 上使用旧的 fujitsu fi-4129c2 扫描仪工作正常,但我无法使用新的 scanmate i1120 扫描仪工作。
我得到的错误在以下行:
MyImage = DirectCast(ConnectedScanner.Items(1).Transfer(WIA.FormatID.wiaFormatBMP), WIA.ImageFile)
我得到的错误是:
我知道代码的工作原理与我使用 fujitsu 扫描仪时的代码相同,但我似乎无法弄清楚是什么值让我在 scanmate 上出现错误。
我刚刚尝试了以下三行代码,它仍然给我同样的错误:
Dim CD As New CommonDialog
Dim F As ImageFile = CD.ShowAcquireImage(WiaDeviceType.ScannerDeviceType)
F.SaveFile("C:\Temp\WIA." + F.FileExtension)
原来是扫描仪的 WIA_DPS_PAGES 设置。
我尝试使用以下代码更改它:
With ConnectedScanner.Items(1)
.Properties("3096").Value = 1
.Properties("6146").Value = 2
.Properties("6147").Value = 300 'dots per inch/horizontal
.Properties("6148").Value = 300 'dots per inch/vertical
.Properties("6154").Value = -50 'brightness
.Properties("6155").Value = -50 ' contrast
End With
但是这并没有用,所以看了之后 WIA Scanning via Feeder
我将此页面上的代码转换为 vb 并使用了以下子代码:
Public Sub SetDeviceProperty(device As Device, propertyId As Integer, value As Object)
Dim [property] As [Property] = FindProperty(device.Properties, propertyId)
If [property] IsNot Nothing Then
[property].let_Value(value)
End If
End Sub
并使用 :
更改了设置SetDeviceProperty(ConnectedScanner, 3096, 1)
SetDeviceProperty(ConnectedScanner, 6146, 2)
SetDeviceProperty(ConnectedScanner, 6147, 300)
SetDeviceProperty(ConnectedScanner, 6148, 300)
SetDeviceProperty(ConnectedScanner, 6154, -50)
SetDeviceProperty(ConnectedScanner, 6155, -50)