Вам не нужно иметь дело с командами устройства для сканирования документа. Вместо этого вам нужно использовать первый элемент устройства под объектом устройства. Вот небольшой пример, который работает сам по себе, без проверок на ошибки для облегчения чтения.
//using WIA;
bool showProgressBar = false;
DeviceManager deviceManager = new DeviceManagerClass();
foreach(DeviceInfo info in deviceManager.DeviceInfos)
{
if(info.Type == WiaDeviceType.ScannerDeviceType)
{
Device device = info.Connect();
ImageFile imageFile = null;
Item deviceItem = null;
//Read through the list of items under the device...
foreach(Item item in device.Items)
{
//Pick the very first one!
deviceItem = item;
break;
}
if(showProgressBar == true)
{
//Scan without GUI, but display the progress bar dialog.
CommonDialogClass commonDialog = new CommonDialogClass();
imageFile = (ImageFile)commonDialog.ShowTransfer(deviceItem, FormatID.wiaFormatBMP, false);
}
else
{
//Scan without GUI, no progress bar displayed...
imageFile = (ImageFile)deviceItem.Transfer(FormatID.wiaFormatBMP);
}
imageFile.SaveFile("C:\\image.bmp");
}
}
Перед сканированием (но после подключения к элементу устройства) вам, вероятно, потребуется установить различные свойства устройства, чтобы выбрать разрешение сканирования, глубину цвета и другие параметры, если значения по умолчанию не подходят для ваших нужд.
Недавно я создал простой в использовании класс для работы со сканерами, совместимыми с WIA, его можно загрузить с этой страницы ... Он предназначен для .Net Framework 2.0, C #. Может быть, это может пригодиться в вашем проекте, вам придется сделать несколько строк кода, включая настройку основных свойств. :)