驱动程序,COMException错误

时间:2014-11-04 14:03:12

标签: vb.net wia

我使用以下代码扫描文档:

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服务正在运行。

我可以采取哪些步骤来解决此问题?

1 个答案:

答案 0 :(得分:0)

1)我有一个对WIA DLL的引用,好像它不是系统COM DLL,而是外部DLL。更改此项解决了COM异常。

2)WIA驱动程序异常显然是因为我明确地将分辨率值设置为200.没有它,扫描进行正常。

this page上,建议将DPI设置为150,或者设置为300或更高,并且某些扫描仪的DPI设置小于300.(我会在检查后更新此答案)此。)