【发布时间】:2019-12-27 23:44:07
【问题描述】:
我目前正在使用一些 OMR 软件,该软件将从扫描仪中获取和扫描工作表,然后将其信息写入文本文件。为了获得可用的本地扫描仪,我使用WIA;要获得这些扫描仪,我会使用一些代码,例如
public List<ScannerInfo> GetWiaDevices()
{
WIA.DeviceManager mgr = new WIA.DeviceManager();
List<ScannerInfo> retVal = new List<ScannerInfo>();
foreach (WIA.DeviceInfo info in mgr.DeviceInfos)
{
if (info.Type == WIA.WiaDeviceType.ScannerDeviceType)
{
foreach (WIA.Property p in info.Properties)
{
if (p.Name == "Name")
retVal.Add(new ScannerInfo(((WIA.IProperty)p).get_Value().ToString(), info.DeviceID));
}
}
}
return retVal;
}
现在,我正在使用技术上是打印机(Windows 将其读取为打印机)的东西——我相信是Konica Minolta Bizhub 282。不幸的是,if (info.Type == WIA.WiaDeviceType.ScannerDeviceType) 无法识别带有内置扫描仪的打印机 as 扫描仪,因此当我运行此代码检查本地扫描仪时,打印机不会显示。
有没有办法让带有内置扫描仪的打印机出现在列表中,此外,还能让它们在 C# 中用作扫描仪吗?感谢您的宝贵时间!
【问题讨论】:
-
也许你可以看看GetDevices中的代码。
-
@JackJJun-MSFT 谢谢;这是个好主意!
-
带有内置扫描仪的打印机在技术上是两个设备,需要两个驱动程序,而不是一个。
-
@SeñorCMasMas 哇,很高兴知道!你知道我怎样才能得到这两个驱动程序吗?