誰かがこれに遭遇したことを願っています-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 が画像のキャプチャ中に一時ファイルを保存しているということです。これは私にはわかりませんが、以前のスキャンを上書きすることはできません。これがどこにあるか知っている人はいますか?