我使用以下代码扫描文档:
Dim manager = New DeviceManager
Dim deviceinfo = manager.DeviceInfos.Cast(Of DeviceInfo)().FirstOrDefault(Function(di) di.Properties("Name").Value = deviceName)
If deviceinfo Is Nothing Then Exit Sub
Dim device As Device = deviceinfo.Connect
Dim dlg = New CommonDialog
Dim Item As Item = device.Items(1)
Item.Properties("Bits Per Pixel").Value = 1
Item.Properties("Horizontal Resolution").Value = 200
Item.Properties("Vertical Resolution").Value = 200
Dim img As ImageFile = dlg.ShowTransfer(Item, FormatID.wiaFormatTIFF, False)
在最后一行,我收到2个不同的错误代码。有时我会收到0x8021000E
,根据this页面,这意味着WIA_ERROR_EXCEPTION_IN_DRIVER
错误。
有时我得到 COMException远程过程调用失败0x800706BE
根据this页面,默认情况下会将驱动程序错误记录到%windir%\wiadebug.log
,但我在那里找不到任何日志文件。我确实在%windir%\debug\wiatrace.log
找到了一个似乎包含此信息的文件。但它并没有给我任何比实际错误更多的东西。
该程序在Windows 7 Professional 64位上运行。 WIA服务正在运行。
我可以采取哪些步骤来解决此问题?
答案 0 :(得分:0)
1)我有一个对WIA DLL的引用,好像它不是系统COM DLL,而是外部DLL。更改此项解决了COM异常。
2)WIA驱动程序异常显然是因为我明确地将分辨率值设置为200.没有它,扫描进行正常。
在this page上,建议将DPI设置为150,或者设置为300或更高,并且某些扫描仪的DPI设置小于300.(我会在检查后更新此答案)此。)