2012-02-09 10 views
0

WIAでネットワークスキャナを使用するプログラムを作成しています。 1ページだけをスキャンするとすべて正常に動作します。私は、フィーダをオンにすると:WIA + adf = 1のネットワークスキャナ

foreach (WIA.Property deviceProperty in wia.Properties) 
{ 
    if (deviceProperty.Name == "Document Handling Select") 
    { 
     int value = duplex ? 0x004 : 0x001; 
     deviceProperty.set_Value(value); 
    } 
} 

プログラムは、ドキュメントフィーダに残っているという信号をスキャンを受け取り、COMエラー(スキャナでスキャンし続けて)で落ちます。 ここにコードがありますが、フィーダ内のページをご確認ください:

//determine if there are any more pages waiting 
Property documentHandlingSelect = null; 
Property documentHandlingStatus = null; 

foreach (Property prop in wia.Properties) 
{ 
    if (prop.PropertyID == WIA_PROPERTIES.WIA_DPS_DOCUMENT_HANDLING_SELECT) 
     documentHandlingSelect = prop; 
    if (prop.PropertyID == WIA_PROPERTIES.WIA_DPS_DOCUMENT_HANDLING_STATUS) 
     documentHandlingStatus = prop; 
} 

if ((Convert.ToUInt32(documentHandlingSelect.get_Value()) & 0x00000001) != 0) 
{ 
    return ((Convert.ToUInt32(documentHandlingStatus.get_Value()) & 0x00000001) != 0); 
} 

return false; 

は、映像コードを取得する:

imgFile = (ImageFile)WiaCommonDialog.ShowTransfer(item, wiaFormatJPEG, false); 

は残念ながらWIA WSDを使用した例を見つけることができませんでした。おそらく、WSDを介して複数の画像を取得するためのいくつかの設定があります。

+0

私も製造元のドライバをインストールして解決した[同じ問題](http://stackoverflow.com/questions/27473142/cannot-read-second-page-scanned-via-adf/31908751#31908751) 。 –

答えて

0

ブラザーMFC-5895CW多機能スキャナを制御するために、vbaでWIA 2.0を使用してもほとんど同じ問題がありました。 ADFからスキャンを転送したとき、画像オブジェクトに2枚以上の画像を取り込むことができませんでした(おそらく、すべての既存のオプションを試して、その問題について数日間働いたことがあります)。 WIA.CommonDialog-ObjectのShowAcquisitionWizard-メソッドを使用して、スキャンしたすべてのファイルを指定したフォルダに一括転送します。後処理がより複雑になるため、これは私にとって満足のいく解決策よりも回避策でした。

私はクライアントのきちんとしたスキャナーで同じ手順を試しました... ShowAcquisitionWizardは指定されたフォルダにスキャンしたページを1つだけ配信し、他のページは消えました。 「CommonDialog.ShowTransfer」メソッドを使用した私の2番目の驚きは、スキャンされたすべてのドキュメントを画像ごとにアプリケーション内のイメージオブジェクトに転送できました。

+0

私はMSサポートから得た唯一の解決策は「WIA COM API用の独自のラッパーを作成する必要があります」でした。 –