Я пытаюсь определить сканеры, подключенные к компьютеру. Одним из возможных решений является использование WIA (Windows Auto Acquisition Automation Library).
Пока это были мои действия:
- Скачать wiaaut.dll
- Скопируйте его в system32
- Зарегистрируйте его с помощью "regsvr32 wiaaut.dll" (успешно)
- Добавить ссылку на мой проект в Visual Studio.NET
- Убедитесь, что служба Windows Image Acquisition (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 с пакетом обновления 2