我正在尝试识别连接到计算机的扫描仪。一种可能的解决方案是使用 WIA(Windows 图像采集自动化库)。
到目前为止,这些是我的行动:
- 下载 wiaaut.dll
- 复制到system32
- 使用“regsvr32 wiaaut.dll”注册它(成功)
- 在 Visual Studio.NET 中添加对我的项目的引用
- 检查 Windows 图像采集 (WIA) 服务是否正在运行
接下来,我添加并调试以下代码:
WIA.DeviceManager manager = new WIA.DeviceManagerClass();
string deviceName = "";
foreach (WIA.DeviceInfo info in manager.DeviceInfos)
{
if (info.Type == WIA.WiaDeviceType.ScannerDeviceType)
{
foreach (WIA.Property p in info.Properties)
{
if (p.Name == "Name")
{
deviceName = ((WIA.IProperty)p).get_Value().ToString();
Console.WriteLine(deviceName);
}
}
}
}
但是,manager.DeviceInfos 始终为空。我连接了 2 台扫描仪,其中一台显示在控制面板-> 扫描仪和相机中,一台没有,并且都显示在设备管理器的“成像设备”下。
关于为什么没有出现在 WIA.DeviceManager.DeviceInfos 中的任何建议?
在 Windows XP Service Pack 2 上运行