WPFアプリケーションでTWAINスキャンするには?
対象製品
LEADTOOLS 17.5J Imaging Pro
詳細
TwainSessionクラスのStartupメソッドを実行する際に必要なIWin32Windowオブジェクトを設定します。
サンプルコード(VB.NET)
サンプルコード(C#)
実際の動作は製品のチュートリアル「WpfTwainScan」をご覧ください。
サンプルコード(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