我使用下面的代碼來掃描文檔:驅動程序,收到COMException錯誤
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服務正在運行。
我可以採取哪些措施來解決此問題?
確保你運行這個線程是一個STA線程,你在WPF或Winforms應用程序中獲得的類型。除此之外,從設備製造商獲得驅動程序更新是您唯一的希望避免這種情況。 – 2014-11-04 14:57:14
另外,請檢查參數並確保(1)所有參數對您的設備有效,並且(2)您不必初始化任何您不是的設備。有些設備不遵守規則。 – xpda 2014-11-04 19:42:22
@HansPassant我最初用Task.Run分離出一個任務。現在我同步運行它,我始終得到COMException。 – 2014-11-07 09:28:04