【问题标题】:WIA for wireless Scanner用于无线扫描仪的 WIA
【发布时间】:2015-05-09 18:33:03
【问题描述】:

我有一个应用程序,它将扫描文档,并且我正在使用 Windows Image Acquisition。我应用了 Pete Brown 编写的this article 中的指示,这很有趣,但在我的情况下,我有一个无线扫描仪,我的代码抛出一个找不到设备的异常。我尝试使用我找到的这段代码枚举设备:

public static List<string> GetDevices()
{
    List<string> devices = new List<string>();
    WIA.DeviceManager manager = new WIA.DeviceManager();

    foreach (WIA.DeviceInfo info in manager.DeviceInfos)
    {
         devices.Add(info.DeviceID);
    }

    return devices;
}

但是返回的列表是空的。

那么有什么办法可以解决这个问题吗?

【问题讨论】:

  • 您是说无线扫描仪吗? WIA 不处理打印机...
  • 是的,扫描仪,我马上换(我有一台三合一打印机)
  • 当您使用选择对话框时,您的扫描仪是否显示 - new WIA.CommonDialog().ShowSelectDevice()?也许您的设备没有与 WIA 兼容的驱动程序...
  • 我不认为这是问题所在,因为正如我所提到的,当我直接连接我的扫描仪时它可以工作。

标签: c# wpf scanning wia


【解决方案1】:

当我使用时

WIA.DeviceManager manager = new WIA.DeviceManagerClass();

而不是

WIA.DeviceManager manager = new WIA.DeviceManager();

manager.DeviceInfos 包括我的网络扫描仪。

【讨论】:

  • 语句WIA.DeviceManager manager = WIA.DeviceManagerClass() 不会编译。
  • 在 Visual Studio 中,我在“参考管理器”->“COM”->“类型库”中添加了 WIA 的“Microsoft Windows 图像采集库 v2.0”。 VS 将 WIA.DeviceManagerClass() 显示为接口 WIA.DeviceManager() 的类。也许我们使用不同的版本?
  • 是的,我使用的是 WIA v2.0。当我写 var manager = WIA.DeviceManagerClass() 时,它说“不可调用的成员 'DeviceManagerClass' 不能像方法一样使用。”当我写var manager = new WIA.DeviceManagerClass() 时,它说“无法嵌入互操作类型'DeviceManagerClass'。请改用适用的接口。”
  • 哦,是的,我忘记了new-关键字,我将解决方案编辑为new WIA.DeviceManagerClass();。但是我没有得到使用界面的提示。
  • 好的,我想我知道发生了什么——您已将“Embed Interop”设置为 false,对吧?
猜你喜欢
  • 2011-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-05
  • 1970-01-01
  • 1970-01-01
  • 2015-12-18
  • 2012-03-01
相关资源
最近更新 更多