我正在尝试使用WIA(Microsoft Windows Image Acquisition Library v2.0)在 Vista 钻机上运行的 VS2008 中构建 C# 3.5 WinForms 应用程序,以从扫描仪获取图像。
我知道有很多 SDK 可以做到这一点(Accusoft、ByteScout、Knowledge Lake 等),但我们希望对 UI 进行一些控制(或缺乏)以及自定义图像处理和处理的能力,即为什么我们要尝试 WIA 角度。
但是,我一直无法让 WIA“看到”我的扫描仪。
'Microsoft Windows Image Acquisition Library v2.0' dll 已在 VS 项目中被引用,我已包含 'using WIA;' 在页面顶部。
这是代码部分:
//Choose Scanner
CommonDialogClass class1 = new CommonDialogClass();
Device d = class1.ShowSelectDevice(WiaDeviceType.UnspecifiedDeviceType, true, false);
if (d != null)
{
this.DeviceID = d.DeviceID;
}
else
{
//no scanner chosen
return;
}
符合要求,但第 2 行(设备 d = ...)在运行时引发以下错误:
HRESULT 异常:0x80210015
据我所知,这通常意味着您的设备已拔出/未打开,或者设备与 WIA 不兼容。
但是有问题的扫描仪显示在控制面板/扫描仪和相机中(意味着它与 WIA 兼容)并且在通过 Photoshop 访问时工作(意味着它已打开)。
我已经插入了其他设备(数码单反),上面的代码可以“看到”它们,所以代码可以正常工作。
有没有人对出了什么问题以及如何解决它有任何建议?
更新 1:
我尝试了几种不同的扫描仪(佳能 5000F、Benq 5250C),但同样的问题。
更新 2:
我一直无法找到明确的证据,但我认为我一直在测试的扫描仪,或者大多数扫描仪 :( 不兼容/支持 WIA。我现在正在考虑使用TWAIN,但仍然希望听到任何在 WIA 方面取得成功的人。
更新 3:最终放弃 WIA 并使用 .NET Twain SDK (EZTwain)。现在都整理好了。感谢大家的意见。