WPFアプリケーションでTWAINスキャンするには?

文書番号 : 34163     文書種別 : 使用方法     登録日 : 2012/10/12     最終更新日 : 2014/08/29
文書を印刷する
対象製品
LEADTOOLS 17.5J Document Imaging
詳細
TwainSessionクラスのStartupメソッドを実行する際に必要なIWin32Windowオブジェクトを設定します。

サンプルコード(VB.NET)
Public Class WindowWrapper
  Implements IWin32Window
  Public Sub New(ByVal handle As IntPtr)
    _hwnd = handle
  End Sub

  Public ReadOnly Property Handle() As IntPtr Implements IWin32Window.Handle
    Get
      Return _hwnd
    End Get
  End Property

  Private _hwnd As IntPtr
End Class

Private twainSession As TwainSession

Private Sub Window1_Loaded(ByVal sender As Object, ByVal e As System.Windows.RoutedEventArgs) Handles Me.Loaded
  Try
    twainSession = New TwainSession()

    Dim strFriendlyName As String = AppDomain.CurrentDomain.FriendlyName
    Dim pro As System.Diagnostics.Process() = System.Diagnostics.Process.GetProcessesByName(strFriendlyName.Substring(0, strFriendlyName.LastIndexOf("."c)))

    twainSession.Startup(New WindowWrapper(pro(0).MainWindowHandle), "", "", "", "", TwainStartupFlags.None)

    AddHandler twainSession.AcquirePage, AddressOf twainSession_AcquirePage

  Catch ex As Exception
    MessageBox.Show(ex.ToString())
  End Try
End Sub

サンプルコード(C#)
public class WindowWrapper : IWin32Window
{
  public WindowWrapper(IntPtr handle)
  {
    _hwnd = handle;
  }

  public IntPtr Handle
  {
    get { return _hwnd; }
  }

  private IntPtr _hwnd;
}

private TwainSession twainSession;

private void Window_Loaded(object sender, RoutedEventArgs e)
{
  try
  {
    twainSession = new TwainSession();

    string strFriendlyName = AppDomain.CurrentDomain.FriendlyName;
    System.Diagnostics.Process[] pro = System.Diagnostics.Process.GetProcessesByName(strFriendlyName.Substring(0, strFriendlyName.LastIndexOf('.')));

    twainSession.Startup(new WindowWrapper(pro[0].MainWindowHandle), "", "", "", "", TwainStartupFlags.None);

    twainSession.AcquirePage += twainSession_AcquirePage;

  }
  catch (Exception ex)
  {
    System.Windows.MessageBox.Show(ex.ToString());
  }
}

実際の動作は製品のチュートリアル「WpfTwainScan」をご覧ください。
キーワード
HowTo WPF TWAIN