none
WIA(Windows Image Acquisition)を使ったスキャナーからの読み込みの過程情報を取得するには RRS feed

  • 質問

  • Windows XP SP1以降に搭載されている画像読み込みドライバーであるWIA(COM:wiaaut.dll)を用いて画像のスキャニングプログラムを組んでいます。

    WIA.DeviceManager dmc = new WIA.DeviceManager();
    
    DeviceInfos devs = dmc.DeviceInfos;
    if (devs.Count > 0) {
    	DeviceInfo di = null;
    	foreach (DeviceInfo i in devs) {
    		di = i;
    		if (i.Type == WiaDeviceType.ScannerDeviceType) {
    			foreach(WIA.Property p in i.Properties){
    				Console.WriteLine(string.Format("{0} : {1}",p.Name, p.get_Value()));
    			}
    		}
    	}
    
    	Console.WriteLine();
    
    	Device device = di.Connect();
    	WIA.Item item = device.Items[1];
    	foreach(WIA.Property p in item.Properties){
    		Console.WriteLine(string.Format("{0}({1}) : {2}", p.Name, p.PropertyID, p.get_Value()));
    	}
    
    	ImageFile img = item.Transfer("{B96B3CAB-0728-11D3-9D7B-0000F81EF32E}");	// BMP形式
    }
    
    
    item.Transferを実行するとともに、スキャニングが始まるのですが、どのくらいスキャニングが完了したかを取得できるようにしたいと考えています。どのようにすれば、スキャン過程を取得できますでしょうか。

    2010年9月6日 9:30

回答

  • >どのようにすれば、スキャン過程を取得できますでしょうか。

     

    進捗を数値等で取得するのではなく、プログレスバーで進捗をダイアログで表示する

    仕組みがあるようです。

    手元に再現環境が無い為確認はとれていませんが、「ShowTransfer」を利用します。

    以下、C#でのサンプルコードがありましたのでリンクです。

    http://www.codeguru.com/forum/showthread.php?t=439027

    • 回答としてマーク Tank2005 2010年9月7日 9:30
    2010年9月6日 10:01

すべての返信

  • >どのようにすれば、スキャン過程を取得できますでしょうか。

     

    進捗を数値等で取得するのではなく、プログレスバーで進捗をダイアログで表示する

    仕組みがあるようです。

    手元に再現環境が無い為確認はとれていませんが、「ShowTransfer」を利用します。

    以下、C#でのサンプルコードがありましたのでリンクです。

    http://www.codeguru.com/forum/showthread.php?t=439027

    • 回答としてマーク Tank2005 2010年9月7日 9:30
    2010年9月6日 10:01
  • 参考になりました。ダイアログで経過表示することにいたします。
    2010年9月7日 9:30