WIA を介してネットワーク スキャナを操作するプログラムを作成しています。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 を介して複数の画像を取得するための設定がいくつかあります。