2023-04-02 00:57:07 +08:00
|
|
|
using NTwain;
|
|
|
|
using System;
|
2023-04-02 03:42:18 +08:00
|
|
|
using System.ComponentModel;
|
2023-04-02 00:57:07 +08:00
|
|
|
using System.Diagnostics;
|
|
|
|
using System.Reflection;
|
|
|
|
using System.Windows.Forms;
|
|
|
|
using TWAINWorkingGroup;
|
|
|
|
|
|
|
|
namespace WinForm32
|
|
|
|
{
|
|
|
|
public partial class Form1 : Form
|
|
|
|
{
|
|
|
|
private TwainSession twain;
|
|
|
|
|
|
|
|
public Form1()
|
|
|
|
{
|
|
|
|
InitializeComponent();
|
|
|
|
|
|
|
|
TwainPlatform.PreferLegacyDSM = true;
|
|
|
|
|
|
|
|
twain = new TwainSession(Assembly.GetExecutingAssembly().Location);
|
|
|
|
twain.StateChanged += Twain_StateChanged;
|
|
|
|
}
|
|
|
|
|
2023-04-02 03:42:18 +08:00
|
|
|
private static void Twain_StateChanged(TwainSession session, STATE state)
|
2023-04-02 00:57:07 +08:00
|
|
|
{
|
2023-04-02 04:05:44 +08:00
|
|
|
Debug.WriteLine($"State changed to {state}");
|
2023-04-02 00:57:07 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
protected override void OnHandleCreated(EventArgs e)
|
|
|
|
{
|
|
|
|
base.OnHandleCreated(e);
|
|
|
|
|
|
|
|
|
|
|
|
var hwnd = this.Handle;
|
|
|
|
var rc = twain.DGControl.Parent.OpenDSM(ref hwnd);
|
|
|
|
Debug.WriteLine($"OpenDSM={rc}");
|
2023-04-02 04:05:44 +08:00
|
|
|
|
2023-04-02 03:42:18 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
protected override void OnClosing(CancelEventArgs e)
|
|
|
|
{
|
|
|
|
var finalState = twain.TryStepdown(STATE.S2);
|
|
|
|
Debug.WriteLine($"Stepdown result state={finalState}");
|
2023-04-02 00:57:07 +08:00
|
|
|
|
2023-04-02 03:42:18 +08:00
|
|
|
base.OnClosing(e);
|
2023-04-02 00:57:07 +08:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|