将带有内置扫描仪的打印机算作 WIA 扫描仪的方法
Ways to Count a Printer With a Built in Scanner as a Scanner for WIA
我目前正在使用一些 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)
无法将带有内置扫描仪 的打印机识别为 扫描仪,因此当我 运行 此代码检查本地扫描仪时,打印机不显示向上。
有没有办法让带有内置扫描仪的打印机出现在列表中,并且使它们可以在 C# 中用作扫描仪?感谢您的宝贵时间!
我目前正在使用一些 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)
无法将带有内置扫描仪 的打印机识别为 扫描仪,因此当我 运行 此代码检查本地扫描仪时,打印机不显示向上。
有没有办法让带有内置扫描仪的打印机出现在列表中,并且使它们可以在 C# 中用作扫描仪?感谢您的宝贵时间!