Я надеюсь, что кто-то сталкивался с этим - я пытаюсь захватить изображения со сканера документов с помощью WIA, однако на случайных машинах при попытке передать результат изображения - WIA сообщает "Файл существует. - HRESULT: 0x80070050)". На всех машинах с этой проблемой первоначальное использование программного обеспечения было успешным.
Я могу успешно подключиться к сканеру, запросить имя, производителя и т. д.
Я определил, что могу успешно отсканировать изображение, если запущу код под альтернативной учетной записью пользователя (используя щелчок правой кнопкой мыши и запуск от имени администратора). Однако запуск кода под той же учетной записью пользователя с повышенными привилегиями приводит к той же ошибке.
ПРИМЕЧАНИЕ. Исключение возникает в Item1.Transfer, поэтому до этого момента я еще не предоставил WIA путь к файлу, поэтому это не может быть файл, на который он ссылается.
WIA.DeviceManager DeviceManager1 = new WIA.DeviceManagerClass();
WIA.Device Scanner = DeviceManager1.DeviceInfos[i].Connect();
WIA.Item Item1 = null;
foreach (WIA.Item CurrentItem in Scanner.Items) {
Item1 = CurrentItem;
break;
}
WIA.ImageFile Image1 = new WIA.ImageFile();
//Attempt To Capture Scan
Image1 = (WIA.ImageFile)Item1.Transfer(WIA.FormatID.wiaFormatJPEG);
//Save To File
Image1.SaveFile(Path.Combine(Path.GetTempPath(), Path.GetRandomFileName() + @"\scan" + DateTime.Now.Ticks + ".jpg");
Наиболее логичный ответ заключается в том, что WIA сохраняет временный файл во время захвата изображения, о чем я не знаю, и не может перезаписать предыдущее сканирование. Кто-нибудь знает, где это может быть?