我正在尝试使用 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 行(Device d = ...)在运行时会出现以下错误:
HRESULT 异常:0x80210015
据我所知,这通常意味着您的设备未插电/未开机或设备不兼容 WIA。
但是有问题的扫描仪出现在控制面板/扫描仪和相机中(意味着它与 WIA 兼容)并且在通过 Photoshop 访问时可以工作(意味着它已打开)。
我插入了其他设备(数码单反),上面的代码可以“看到”它们,所以代码可以正常工作。
有没有人对出了什么问题以及如何解决有任何建议?
更新 1:
我尝试了几种不同的扫描仪(佳能 5000F、明基 5250C),但问题相同。
更新 2:
我一直无法找到这方面的确切证据,但我认为我一直在测试的扫描仪,或者可能是大多数扫描仪:(,不兼容/不支持 WIA。我是现在正在考虑使用 TWAIN,但仍然希望听到任何人使用 WIA 取得一些成功。
更新 3: 最终放弃了 WIA 并使用了 .NET Twain SDK (EZTwain)。现在都整理好了。感谢大家的投入。
最佳答案
我认为您的扫描仪不支持 WIA
。我建议使用大多数供应商都支持的 TWAIN。
我推荐使用 NTWAIN 库:
关于c# - 为什么 WIA 看不到我的扫描仪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2413910/