为什么WIA看不到我的扫描仪?

Dha*_*ust 25 c# wia winforms image-scanner

我正在尝试使用WIA(Microsoft Windows Image Acquisition Library v2.0)在Vista平台上运行的VS2008中构建一个C#3.5 WinForms应用程序,以从扫描仪中获取图像.

我知道有很多SDK可以做到这一点(Accusoft,ByteScout,Knowledge Lake等),但我们想要对UI(或缺乏)进行一些控制,并且能够自定义图像的处理和处理,这是为什么我们尝试WIA角度.

但是,我无法让WIA"看到"我的扫描仪.

VS项目中引用了"Microsoft Windows Image Acquisition Library v2.0"dll,我已经包含了"使用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;
}
Run Code Online (Sandbox Code Playgroud)

符合条件,但第2行(设备d = ...)在运行时踢出以下错误:
来自HRESULT的异常:0x80210015

据我所知,这通常意味着您的设备已拔下/未开启或设备不兼容WIA.
但是有问题的扫描仪出现在控制面板/扫描仪和相机中(意味着它与WIA兼容),并且在通过Photoshop访问时工作(意味着它已打开).

我已插入其他设备(数码单反相机),上面的代码可以"看到"它们,因此代码正常工作.

有没有人对什么是错误以及如何解决它有任何建议?

更新1:
我尝试了几种不同的扫描仪(佳能5000F,明基5250C),但同样的问题.

更新2:
我一直无法找到这方面的明确证据,但我认为我一直在测试的扫描仪,或者大多数扫描仪:(,不兼容/支持WIA.我现在正在考虑使用TWAIN,但仍然希望听到任何与WIA取得成功的人.

更新3:结束了放弃WIA并使用.NET Twain SDK(EZTwain).现在全部排序.感谢大家的投入.

t0m*_*13b 0

查看 CodeProject 上这篇涵盖TWAIN 的文章。这可能会在这个方向上对您有所帮助,此外,这是另一篇关于WIA 的文章,尽管它有点旧,但仍然值得一看。