Member 13329047 Ответов: 1

Получение изображений Microsoft windows не работает в windows 10(64-разрядная версия)


Я использую Microsoft Windows Image Acquisition (WIA) dll in .Сетевое приложение windows для сканирования документов (изображений.tiff)

И он прекрасно работает с windows 7.

Но Microsoft Windows Image acquisition (WIA) dll не wokring на 64-битной системе Windows 10.

часть кода

img = (WIA.ImageFile)_scanner.Items[1].Transfer(WIA.FormatID.wiaFormatTIFF)


бросает ниже исключение
Система. Время выполнения.InteropServices.Исключение comexception

Дополнительная информация: исключение из HRESULT: 0x8021006B

Пожалуйста, предоставьте любое решение



Код:-
try
{
   WIA.ICommonDialog dialog = new WIA.CommonDialog();
   WIA.Device _scanner = Utility.SelectScannerDeviceName(ScannerModel);
   if (_scanner == null)
   {
      throw new Exception("Scanner Connection Error");
   }
   if (ScannerCategory == "NORMAL")
   {
      if (GrayBlackWhiteColor == "GRAY SCALE")
      {
         _scanner.Items[1].Properties["6146"].set_Value((Object)(2)); 
      }
      else if (GrayBlackWhiteColor == "COLOR")
      {
         _scanner.Items[1].Properties["6146"].set_Value((Object)(1)); 
      }
      else if (GrayBlackWhiteColor == "BLACK & WHITE")
      {
         _scanner.Items[1].Properties["6146"].set_Value((Object)(4)); 
      }   
      _scanner.Items[1].Properties["6147"].set_Value(DPIHorizontal); 
      _scanner.Items[1].Properties["6148"].set_Value(DPIVertical); 

      _scanner.Items[1].Properties["6154"].set_Value(0); 
      _scanner.Items[1].Properties["6155"].set_Value(0);

      _scanner.Items[1].Properties[6].set_Value(DPIHorizontal);
      _scanner.Items[1].Properties[7].set_Value(DPIVertical);

      _scanner.Items[1].Properties[8].set_Value(Convert.ToInt32(8.5 * 100));
      _scanner.Items[1].Properties[9].set_Value(Convert.ToInt32(11 * 100));
   }
   else if (ScannerCategory == "ADVANCE")
   {
      if (GrayBlackWhiteColor == "GRAY SCALE")
      {
         _scanner.Items[1].Properties[17].set_Value((Object)(2)); 
      }
      else if (GrayBlackWhiteColor == "COLOR")
      {
         _scanner.Items[1].Properties[17].set_Value((Object)(1));
      }
      else if (GrayBlackWhiteColor == "BLACK & WHITE")
      {
         _scanner.Items[1].Properties[17].set_Value((Object)(4));
      }   

      _scanner.Items[1].Properties[10].set_Value(0);
      _scanner.Items[1].Properties[11].set_Value(0);   
      _scanner.Items[1].Properties[8].set_Value(Convert.ToInt32(8.5 * 100));
      _scanner.Items[1].Properties[9].set_Value(Convert.ToInt32(14 * 100));
      _scanner.Properties["Document Handling Select"].set_Value(5);
      _scanner.Items[1].Properties[6].set_Value(DPIHorizontal);
      _scanner.Items[1].Properties[7].set_Value(DPIVertical);
    
   }
   else
   {
      _scanner.Items[1].Properties[8].set_Value(Convert.ToInt32(8.5 * 100));
      _scanner.Items[1].Properties[9].set_Value(Convert.ToInt32(11 * 100));
   }

   WIA.ImageFile img;
   if (cmbScanning == 0)
   {
      img = (WIA.ImageFile)_scanner.Items[1].Transfer(WIA.FormatID.wiaFormatJPEG);
   }
   else
   {
      img = (WIA.ImageFile)_scanner.Items[1].Transfer(WIA.FormatID.wiaFormatTIFF);
   }

   sFileName = FileName + DateAndTime.Now.ToString("_dd_MMM_yyyy_HH_mm_ss") + ".TIFF";
   sFullFileName = FolderPath + "\\" + sFileName;
   if (File.Exists(sFullFileName))
   {
      File.Delete(sFullFileName);
   }

   img.SaveFile(sFullFileName);

   img = null;
}
catch (Exception ex)
{
   throw ex;
}


Что я уже пробовал:

Я добавил ссылки WIA dll с 64-битной машины windows 10, но все равно получаю ту же ошибку.

1 Ответов

Рейтинг:
2

kanangandhi

1-е решение:

Щелкните правой кнопкой мыши на вашем проекте-> нажмите на свойства -> нажмите на сборку -> измените целевую платформу на x86.

2-е решение:
убедитесь сами WIA.dll работает на 64 битах.


Member 13329047

Спасибо канангандхи за решение.

Я также пытался запустить платформу изменения приложений x86
но все равно есть та же проблема.

Да у меня есть подтверждение WIA.dll работает на 64 битах.

Пожалуйста, предоставьте любое решение.