2023-04-01 19:26:59 +08:00
|
|
|
|
using NTwain;
|
2023-04-03 03:32:19 +08:00
|
|
|
|
using NTwain.Data;
|
2023-04-02 00:57:07 +08:00
|
|
|
|
using System;
|
|
|
|
|
using System.Diagnostics;
|
2023-04-01 19:26:59 +08:00
|
|
|
|
using System.Reflection;
|
|
|
|
|
|
|
|
|
|
namespace SampleConsole
|
|
|
|
|
{
|
|
|
|
|
internal class Program
|
|
|
|
|
{
|
2023-04-02 07:15:41 +08:00
|
|
|
|
// CONSOLE won't work yet until I got a message loop going.
|
|
|
|
|
|
2023-04-01 19:26:59 +08:00
|
|
|
|
static void Main(string[] args)
|
|
|
|
|
{
|
2023-04-02 00:57:07 +08:00
|
|
|
|
TwainPlatform.PreferLegacyDSM = true;
|
|
|
|
|
|
2023-04-03 10:36:58 +08:00
|
|
|
|
var twain = new TwainSession(new InPlaceMarshaller(), Assembly.GetExecutingAssembly().Location);
|
2023-04-01 20:01:20 +08:00
|
|
|
|
twain.StateChanged += Twain_StateChanged;
|
2023-04-02 00:57:07 +08:00
|
|
|
|
|
2023-04-02 03:42:18 +08:00
|
|
|
|
var hwnd = IntPtr.Zero; // required for windows
|
2023-04-03 01:41:16 +08:00
|
|
|
|
var rc = twain.OpenDSM(hwnd);
|
2023-04-02 00:57:07 +08:00
|
|
|
|
Debug.WriteLine($"OpenDSM={rc}");
|
|
|
|
|
|
2023-04-02 03:42:18 +08:00
|
|
|
|
if (rc == STS.SUCCESS)
|
2023-04-02 00:57:07 +08:00
|
|
|
|
{
|
|
|
|
|
Debug.WriteLine($"CloseDSM={rc}");
|
2023-04-03 01:41:16 +08:00
|
|
|
|
rc = twain.CloseDSM();
|
2023-04-02 00:57:07 +08:00
|
|
|
|
}
|
2023-04-01 20:01:20 +08:00
|
|
|
|
}
|
|
|
|
|
|
2023-04-02 03:42:18 +08:00
|
|
|
|
private static void Twain_StateChanged(TwainSession session, STATE state)
|
2023-04-01 20:01:20 +08:00
|
|
|
|
{
|
|
|
|
|
Console.WriteLine($"State changed to {state}");
|
2023-04-01 19:26:59 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|